/*
Theme Name:AIDER child
Theme URI:https://tcd-theme.com/tcd115
Description:WordPressテーマ「AIDER」の子テーマ
Template:aider_tcd115
Author:TCD
Author URI:https://tcd-theme.com/
Version:1.0
*/

/*
  ここから下にCSSを追記してください。
*/
/* =========================================================
   Life & Grow｜Issue Talk Section 完成版
========================================================= */

.lg-issue-talk,
.lg-issue-talk *,
.lg-issue-talk *::before,
.lg-issue-talk *::after {
  box-sizing: border-box;
}

.lg-issue-talk {
  position: relative;
  width: 100%;
  margin: -80px 0 0;
  padding: 20px 0 10px;
  color: #222;
  background: #fff;
}

.lg-issue-talk__inner {
  width: min(1080px, calc(100% - 32px));
  margin: 0 auto;
}


/* =========================================================
   見出し
========================================================= */

.lg-issue-talk__header {
  max-width: 820px;
  margin: 0 auto 30px;
  text-align: center;
}

.lg-issue-talk__eyebrow {
  display: inline-block;
  margin: 0 0 33px !important;
  padding: 0 0 5px;
  color: #1f6f5c !important;
  border-bottom: 1px solid rgba(31, 111, 92, 0.22);
  font-family: Arial, sans-serif;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.22em;
}

.lg-issue-talk__title {
  margin: 0 0 22px !important;
  padding: 0 !important;
  color: #174c42 !important;
  font-family:
    "Noto Serif JP",
    "Yu Mincho",
    serif;
  font-size: clamp(44px, 4.6vw, 20px) !important;
  font-weight: 700;
  line-height: 1.45 !important;
  letter-spacing: 0.03em;
}

.lg-issue-talk__lead {
  margin: 0 !important;
  color: #5e6662 !important;
  font-family:
    "Noto Sans JP",
    "Hiragino Kaku Gothic ProN",
    "Yu Gothic",
    sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 2;
}


/* =========================================================
   PC：2列Grid
========================================================= */

.lg-issue-talk__list {
  display: grid !important;
  grid-template-columns:
    minmax(0, 1fr)
    minmax(0, 1fr) !important;
  grid-template-rows: auto auto auto auto;
  column-gap: 26px;
  row-gap: 18px;
  align-items: stretch;
  width: 100%;
  margin: 0 auto 14px !important;
}

/* TCDが自動挿入する空要素を除外 */

.lg-issue-talk__list > br,
.lg-issue-talk__list > p:empty,
.lg-issue-talk__list > div:empty {
  display: none !important;
}

/* 各カードの位置を固定 */

.lg-issue-talk__list >
.lg-issue-card:nth-of-type(1) {
  grid-column: 1 !important;
  grid-row: 1 !important;
}

.lg-issue-talk__list >
.lg-issue-card:nth-of-type(2) {
  grid-column: 2 !important;
  grid-row: 1 !important;
}

.lg-issue-talk__list >
.lg-issue-card:nth-of-type(3) {
  grid-column: 1 !important;
  grid-row: 2 !important;
}

.lg-issue-talk__list >
.lg-issue-card:nth-of-type(4) {
  grid-column: 2 !important;
  grid-row: 2 !important;
}

.lg-issue-talk__list >
.lg-issue-card:nth-of-type(5) {
  grid-column: 1 !important;
  grid-row: 3 !important;
}

.lg-issue-talk__list >
.lg-issue-card:nth-of-type(6) {
  grid-column: 2 !important;
  grid-row: 3 !important;
}

.lg-issue-talk__list >
.lg-issue-card:nth-of-type(7) {
  grid-column: 1 / 3 !important;
  grid-row: 4 !important;
}


/* =========================================================
   カード共通
========================================================= */

.lg-issue-card {
  position: relative;
  min-width: 0;
  min-height: 184px;
  margin: 0;
  padding: 24px 24px 22px;
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(31, 111, 92, 0.16);
  border-radius: 24px;
  box-shadow:
    0 12px 28px rgba(23, 76, 66, 0.08),
    0 2px 6px rgba(23, 76, 66, 0.04);
  transition:
    transform 0.35s ease,
    box-shadow 0.35s ease,
    border-color 0.35s ease;
}

/* 吹き出しの尻尾を完全に削除 */

.lg-issue-card::after,
.lg-issue-card--left::after,
.lg-issue-card--right::after,
.lg-issue-card--center::after {
  display: none !important;
  content: none !important;
}

/* PC左右のわずかなずらし */

.lg-issue-card--left {
  margin-right: 18px;
}

.lg-issue-card--right {
  margin-left: 18px;
}

/* 07 */

.lg-issue-card--center {
  width: min(620px, 100%);
  margin: 2px auto 0;
}


/* =========================================================
   カード内共通
========================================================= */

.lg-issue-card__content {
  position: relative;
  z-index: 3;
  min-width: 0;
}

.lg-issue-card__meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 12px;
}

.lg-issue-card__num {
  display: inline-flex;
  flex: 0 0 34px;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  color: #fff;
  background:
    linear-gradient(
      135deg,
      #174c42 0%,
      #2c7b67 100%
    );
  border-radius: 50%;
  box-shadow:
    0 6px 16px rgba(23, 76, 66, 0.16);
  font-family: Arial, sans-serif;
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.04em;
}

.lg-issue-card__cat {
  color: #1f6f5c !important;
  font-family:
    "Noto Sans JP",
    "Yu Gothic",
    sans-serif;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.12em;
}

.lg-issue-card__text {
  position: relative;
  z-index: 3;
  margin: 0 !important;
  color: #1f2623 !important;
  font-family:
    "Noto Serif JP",
    "Yu Mincho",
    serif;
  font-size: clamp(18px, 1.7vw, 23px);
  font-weight: 700;
  line-height: 1.72;
  letter-spacing: 0.02em;
}


/* =========================================================
   人物画像付きカード
========================================================= */

.lg-issue-card--visual {
  display: grid;
  grid-template-columns:
    minmax(0, 1fr)
    150px;
  align-items: stretch;
  min-height: 190px;
  padding: 0;
}

.lg-issue-card--visual
.lg-issue-card__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: 25px 2px 25px 26px;
}

.lg-issue-card--visual
.lg-issue-card__text {
  max-width: 290px;
}


/* =========================================================
   人物画像
========================================================= */

.lg-issue-card__image {
  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  min-width: 0;
  min-height: 190px;
  overflow: hidden;
  background: transparent !important;
  border-radius: 0 23px 23px 0;
  box-shadow: none !important;
  filter: none !important;
}

/* 画像背面の円・装飾を削除 */

.lg-issue-card__image::before,
.lg-issue-card__image::after {
  display: none !important;
  content: none !important;
}

.lg-issue-card__image img {
  position: relative;
  z-index: 2;
  display: block !important;
  width: 140px !important;
  max-width: 100% !important;
  height: auto !important;
  margin: 0 0 -3px !important;
  padding: 0 !important;
  object-fit: contain;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  filter: none !important;
  text-shadow: none !important;
}


/* =========================================================
   07
========================================================= */

.lg-issue-card--last {
  grid-template-columns:
    minmax(0, 1fr)
    170px;
  min-height: 198px;
}

.lg-issue-card--last
.lg-issue-card__content {
  padding-left: 30px;
}

.lg-issue-card__image--large {
  min-height: 198px;
}

.lg-issue-card__image--large img {
  width: 158px !important;
}


/* =========================================================
   画像なしカード
========================================================= */

.lg-issue-card--plain {
  display: flex;
  align-items: center;
  min-height: 184px;
}

.lg-issue-card--plain
.lg-issue-card__content {
  width: 100%;
  padding-right: 80px;
}

.lg-issue-card__bg-number {
  position: absolute;
  right: 20px;
  bottom: -12px;
  z-index: 1;
  color: rgba(31, 111, 92, 0.045);
  font-family: Arial, sans-serif;
  font-size: 94px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.08em;
}


/* =========================================================
   ホバー
========================================================= */

@media (hover: hover) {

  .lg-issue-card:hover {
    border-color: rgba(31, 111, 92, 0.28);
    box-shadow:
      0 18px 36px rgba(23, 76, 66, 0.12),
      0 4px 10px rgba(23, 76, 66, 0.05);
    transform: translateY(-4px);
  }

}


/* =========================================================
   最下部
========================================================= */

.lg-issue-talk__point {
  position: relative;
  overflow: hidden;
  margin-top: 0 !important;
  padding: 34px 36px;
  color: #fff;
  background:
    linear-gradient(
      135deg,
      #143d35 0%,
      #1d5e4f 58%,
      #2b7562 100%
    );
  border-radius: 24px;
  box-shadow:
    0 18px 42px rgba(23, 76, 66, 0.16);
}

.lg-issue-talk__point::before {
  position: absolute;
  right: -90px;
  bottom: -110px;
  width: 280px;
  height: 280px;
  content: "";
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 50%;
}

.lg-issue-talk__point-label {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  margin: 0 0 14px !important;
  padding: 5px 11px;
  color: rgba(255, 255, 255, 0.86) !important;
  background: rgba(255, 255, 255, 0.12);
  border-radius: 999px;
  font-family: Arial, sans-serif;
  font-size: 9px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.16em;
}

.lg-issue-talk__point-title {
  position: relative;
  z-index: 2;
  margin: 0 0 14px !important;
  color: #fff !important;
  font-family:
    "Noto Serif JP",
    "Yu Mincho",
    serif;
  font-size: clamp(22px, 2.8vw, 32px);
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.02em;
}

.lg-issue-talk__point-text {
  position: relative;
  z-index: 2;
  max-width: 780px;
  margin: 0 !important;
  color: rgba(255, 255, 255, 0.88) !important;
  font-family:
    "Noto Sans JP",
    "Yu Gothic",
    sans-serif;
  font-size: 14px;
  line-height: 2;
}

.lg-issue-talk__point h1,
.lg-issue-talk__point h2,
.lg-issue-talk__point h3,
.lg-issue-talk__point h4 {
  color: #fff !important;
}

.lg-issue-talk__point p {
  color: rgba(255, 255, 255, 0.88) !important;
}

.lg-issue-talk__pc {
  display: inline;
}


/* =========================================================
   タブレット
========================================================= */

@media screen and (max-width: 1024px) {

  .lg-issue-talk {
    margin-top: -20px;
    padding: 16px 0 64px;
  }

  .lg-issue-talk__header {
    margin-bottom: 28px;
  }

  .lg-issue-talk__list {
    column-gap: 20px;
    row-gap: 16px;
  }

  .lg-issue-card--left {
    margin-right: 7px;
  }

  .lg-issue-card--right {
    margin-left: 7px;
  }

  .lg-issue-card--visual {
    grid-template-columns:
      minmax(0, 1fr)
      122px;
  }

  .lg-issue-card--visual
  .lg-issue-card__content {
    padding:
      21px
      0
      21px
      20px;
  }

  .lg-issue-card__image img {
    width: 115px !important;
  }

  .lg-issue-card--last {
    grid-template-columns:
      minmax(0, 1fr)
      145px;
  }

  .lg-issue-card__image--large img {
    width: 134px !important;
  }

  .lg-issue-card__text {
    font-size: 18px;
  }

}


/* =========================================================
   SP
========================================================= */

@media screen and (max-width: 767px) {

  .lg-issue-talk {
    margin-top: -10px;
    padding: 13px 0 48px;
  }

  .lg-issue-talk__inner {
    width: calc(100% - 24px);
  }

  .lg-issue-talk__header {
    margin-bottom: 1px;
  }

  .lg-issue-talk__eyebrow {
    margin-bottom: 19px !important;
    padding-bottom: 6px;
    font-size: 11px;
  }

  .lg-issue-talk__title {
    margin-bottom: 14px !important;
    font-size: 30px !important;
    line-height: 1.38 !important;
  }

  .lg-issue-talk__lead {
    font-size: 13px;
    line-height: 1.85;
  }

  .lg-issue-talk__pc {
    display: none;
  }

  /* SPは1列、カード間をかなり詰める */

  .lg-issue-talk__list {
    grid-template-columns: 1fr !important;
    grid-template-rows: none;
    row-gap: 0px !important;
    column-gap: 0 !important;
    margin-bottom: 26px !important;
  }

  /* PCの配置を解除 */

  .lg-issue-talk__list >
  .lg-issue-card:nth-of-type(n) {
    grid-column: 1 !important;
    grid-row: auto !important;
  }

  .lg-issue-card,
  .lg-issue-card--left,
  .lg-issue-card--right,
  .lg-issue-card--center {
    width: 100%;
    min-height: 0;
    margin: 0;
    padding: 16px 15px;
    border-radius: 18px;
  }

  .lg-issue-card__meta {
    gap: 9px;
    margin-bottom: 7px;
  }

  .lg-issue-card__num {
    flex-basis: 29px;
    width: 29px;
    height: 29px;
    font-size: 9px;
  }

  .lg-issue-card__cat {
    font-size: 9.5px;
  }

  .lg-issue-card__text {
    font-size: 16px;
    line-height: 1.6;
  }

  /* 人物画像付き */

  .lg-issue-card--visual,
  .lg-issue-card--last {
    grid-template-columns:
      minmax(0, 1fr)
      102px;
    min-height: 150px;
    padding: 0;
  }

  .lg-issue-card--visual
  .lg-issue-card__content,
  .lg-issue-card--last
  .lg-issue-card__content {
    padding:
      15px
      0
      15px
      15px;
  }

  .lg-issue-card__image,
  .lg-issue-card__image--large {
    min-height: 150px;
  }

  .lg-issue-card__image img,
  .lg-issue-card__image--large img {
    width: 96px !important;
  }

  .lg-issue-card--visual
  .lg-issue-card__text {
    max-width: 205px;
    font-size: 15.5px;
  }

  /* 画像なし */

  .lg-issue-card--plain {
    min-height: 122px;
    padding: 16px 15px;
  }

  .lg-issue-card--plain
  .lg-issue-card__content {
    padding-right: 56px;
  }

  .lg-issue-card__bg-number {
    right: 12px;
    bottom: -4px;
    font-size: 66px;
  }

  /* 最下部 */

  .lg-issue-talk__point {
    margin-top: 0 !important;
    padding: 25px 20px 23px;
    border-radius: 19px;
  }

  .lg-issue-talk__point-label {
    margin-bottom: 11px !important;
    font-size: 8px;
  }

  .lg-issue-talk__point-title {
    margin-bottom: 11px !important;
    font-size: 21px;
    line-height: 1.65;
  }

  .lg-issue-talk__point-text {
    font-size: 13px;
    line-height: 1.85;
  }

}


/* =========================================================
   小さいSP
========================================================= */

@media screen and (max-width: 390px) {

  .lg-issue-talk__title {
    font-size: 26px !important;
  }

  .lg-issue-card--visual,
  .lg-issue-card--last {
    grid-template-columns:
      minmax(0, 1fr)
      88px;
  }

  .lg-issue-card__image img,
  .lg-issue-card__image--large img {
    width: 84px !important;
  }

  .lg-issue-card--visual
  .lg-issue-card__text {
    font-size: 15px;
  }

}
/* =========================================================
   PCのみ：07とIMPORTANT POINTの間を詰める
========================================================= */

@media screen and (min-width: 768px) {

  /* TCDが自動挿入したp・brをGridから完全に除外 */
  .lg-issue-talk__list > p,
  .lg-issue-talk__list > br {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  /* Grid下部の余白を縮小 */
  .lg-issue-talk__list {
    margin-bottom: 38px !important;
    padding-bottom: 0 !important;
  }

  /* 07の下余白を削除 */
  .lg-issue-card--center,
  .lg-issue-card--last {
    margin-bottom: 0 !important;
  }

  /* 緑ボックス上部の余白を削除 */
  .lg-issue-talk__point {
    margin-top: 0 !important;
  }
}
/* =========================================================
   Life & Grow｜Concept Bridge 完成版
   HTML：.lg-concept-bridge を使用
========================================================= */

.lg-concept-bridge,
.lg-concept-bridge *,
.lg-concept-bridge *::before,
.lg-concept-bridge *::after {
  box-sizing: border-box;
}

.lg-concept-bridge {
  position: relative;
  isolation: isolate;
  width: 100vw;
  max-width: none !important;
  margin: 0 0 0 calc(50% - 50vw) !important;
  padding: 88px 0 24px;
  overflow: hidden;
  color: #222;
  background:
    linear-gradient(
      180deg,
      #f5f9f7 0%,
      #edf5f1 100%
    );
}

/* 背景装飾 */

.lg-concept-bridge::before {
  position: absolute;
  top: -180px;
  right: -150px;
  z-index: -1;
  width: 470px;
  height: 470px;
  content: "";
  border: 1px solid rgba(31, 111, 92, 0.065);
  border-radius: 50%;
  pointer-events: none;
}

.lg-concept-bridge::after {
  position: absolute;
  bottom: -190px;
  left: -130px;
  z-index: -1;
  width: 400px;
  height: 400px;
  content: "";
  border: 1px solid rgba(31, 111, 92, 0.05);
  border-radius: 50%;
  pointer-events: none;
}

.lg-concept-bridge__inner {
  position: relative;
  z-index: 2;
  width: min(1120px, calc(100% - 40px));
  max-width: 1120px;
  margin: 0 auto;
}


/* =========================================================
   TCD自動挿入要素対策
========================================================= */

.lg-concept-bridge__compare > br,
.lg-concept-bridge__compare > p:empty,
.lg-concept-bridge__issue-grid > br,
.lg-concept-bridge__issue-grid > p:empty,
.lg-concept-bridge__flow > br,
.lg-concept-bridge__flow > p:empty {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}


/* =========================================================
   見出し
========================================================= */

.lg-concept-bridge__header {
  max-width: 900px;
  margin: 0 auto 48px;
  text-align: center;
}

.lg-concept-bridge__eyebrow {
  display: inline-block;
  margin: 0 0 13px !important;
  padding: 0 0 6px;
  color: #1f6f5c !important;
  border-bottom: 1px solid rgba(31, 111, 92, 0.24);
  font-family:
    Inter,
    Arial,
    sans-serif;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.24em;
}

.lg-concept-bridge__title {
  margin: 0 0 20px !important;
  padding: 0 !important;
  color: #174c42 !important;
  border: 0 !important;
  font-family:
    "Noto Serif JP",
    "Yu Mincho",
    serif;
  font-size: clamp(38px, 4.5vw, 58px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.025em;
}

.lg-concept-bridge__lead {
  max-width: 880px;
  margin: 0 auto !important;
  padding: 0 !important;
  color: #5b6560 !important;
  font-family:
    "Noto Sans JP",
    "Hiragino Kaku Gothic ProN",
    "Yu Gothic",
    sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 2.05;
}


/* =========================================================
   BEFORE / AFTER 比較エリア
========================================================= */

.lg-concept-bridge__compare {
  display: grid !important;
  grid-template-columns:
    minmax(0, 1fr)
    72px
    minmax(0, 1fr) !important;
  grid-template-areas:
    "before arrow after";
  gap: 22px;
  align-items: stretch;
  width: 100%;
  margin: 0 0 32px;
}

.lg-concept-bridge__panel {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 36px 34px 32px;
  border-radius: 28px;
}

.lg-concept-bridge__panel--before {
  grid-area: before;
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid rgba(31, 111, 92, 0.13);
  box-shadow:
    0 17px 42px rgba(23, 76, 66, 0.065),
    0 3px 9px rgba(23, 76, 66, 0.025);
}

.lg-concept-bridge__panel--after {
  grid-area: after;
  overflow: hidden;
  color: #fff;
  background:
    linear-gradient(
      140deg,
      #153f37 0%,
      #1f6655 58%,
      #2c7d68 100%
    );
  border: 1px solid rgba(23, 76, 66, 0.2);
  box-shadow:
    0 22px 50px rgba(23, 76, 66, 0.17);
}

.lg-concept-bridge__panel--after::before {
  position: absolute;
  top: -100px;
  right: -90px;
  width: 260px;
  height: 260px;
  content: "";
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 50%;
  pointer-events: none;
}


/* =========================================================
   パネル見出し
========================================================= */

.lg-concept-bridge__panel-head {
  position: relative;
  z-index: 2;
  margin: 0 0 25px;
}

.lg-concept-bridge__panel-label {
  display: inline-flex;
  align-items: center;
  min-height: 29px;
  margin: 0 0 13px;
  padding: 5px 12px;
  color: #1f6f5c;
  background: #e5f0eb;
  border-radius: 999px;
  font-family:
    Inter,
    Arial,
    sans-serif;
  font-size: 9px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.17em;
}

.lg-concept-bridge__panel-label--after {
  color: rgba(255, 255, 255, 0.9);
  background: rgba(255, 255, 255, 0.13);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.lg-concept-bridge__panel-title {
  margin: 0 !important;
  padding: 0 !important;
  color: #174c42 !important;
  border: 0 !important;
  font-family:
    "Noto Serif JP",
    "Yu Mincho",
    serif;
  font-size: clamp(23px, 2.2vw, 30px);
  font-weight: 700;
  line-height: 1.65;
  letter-spacing: 0.02em;
}

.lg-concept-bridge__panel-title--after {
  color: #fff !important;
}


/* =========================================================
   BEFORE：分断された施策
========================================================= */

.lg-concept-bridge__issue-grid {
  position: relative;
  z-index: 2;
  display: grid !important;
  grid-template-columns:
    repeat(2, minmax(0, 1fr)) !important;
  gap: 13px;
  width: 100%;
}

.lg-concept-bridge__issue-card {
  position: relative;
  min-width: 0;
  min-height: 125px;
  margin: 0;
  padding: 18px 16px 17px;
  overflow: hidden;
  background: #f7faf8;
  border: 1px dashed rgba(31, 111, 92, 0.23);
  border-radius: 17px;
}

.lg-concept-bridge__issue-card::after {
  position: absolute;
  right: 15px;
  bottom: 13px;
  width: 25px;
  height: 25px;
  content: "";
  opacity: 0.075;
  background:
    linear-gradient(
      45deg,
      transparent 42%,
      #1f6f5c 42%,
      #1f6f5c 58%,
      transparent 58%
    ),
    linear-gradient(
      -45deg,
      transparent 42%,
      #1f6f5c 42%,
      #1f6f5c 58%,
      transparent 58%
    );
}

.lg-concept-bridge__issue-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 29px;
  height: 29px;
  margin: 0 0 12px;
  color: #1f6f5c;
  background: #dfeee8;
  border-radius: 50%;
  font-family:
    Inter,
    Arial,
    sans-serif;
  font-size: 9px;
  font-weight: 700;
  line-height: 1;
}

.lg-concept-bridge__issue-card p {
  position: relative;
  z-index: 2;
  margin: 0 !important;
  padding: 0 !important;
  color: #24302b !important;
  font-family:
    "Noto Serif JP",
    "Yu Mincho",
    serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.6;
}

.lg-concept-bridge__before-note {
  margin: auto 0 0 !important;
  padding: 19px 0 0 !important;
  color: #68736e !important;
  font-family:
    "Noto Sans JP",
    "Yu Gothic",
    sans-serif;
  font-size: 13px;
  line-height: 1.9;
}


/* =========================================================
   中央矢印
========================================================= */

.lg-concept-bridge__arrow-wrap {
  grid-area: arrow;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
}

.lg-concept-bridge__arrow-circle {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 68px;
  height: 68px;
  color: #1f6f5c;
  background: #fff;
  border: 1px solid rgba(31, 111, 92, 0.15);
  border-radius: 50%;
  box-shadow:
    0 12px 28px rgba(23, 76, 66, 0.1);
}

.lg-concept-bridge__arrow-circle span {
  display: block;
  margin: -2px 0 0;
  color: #1f6f5c !important;
  font-family:
    Arial,
    sans-serif;
  font-size: 29px;
  font-weight: 700;
  line-height: 1;
}


/* =========================================================
   AFTER：成長フロー
========================================================= */

.lg-concept-bridge__flow {
  position: relative;
  z-index: 2;
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 12px;
  width: 100%;
}

.lg-concept-bridge__flow-step {
  position: relative;
  display: grid;
  grid-template-columns:
    40px
    minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  min-width: 0;
  min-height: 74px;
  margin: 0;
  padding: 14px 16px;
  background: rgba(255, 255, 255, 0.105);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 15px;
}

.lg-concept-bridge__flow-step:not(:last-child)::after {
  position: absolute;
  bottom: -13px;
  left: 35px;
  z-index: 3;
  width: 1px;
  height: 13px;
  content: "";
  background: rgba(255, 255, 255, 0.34);
}

.lg-concept-bridge__flow-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  color: #174c42;
  background: #fff;
  border-radius: 50%;
  font-family:
    Inter,
    Arial,
    sans-serif;
  font-size: 9px;
  font-weight: 700;
  line-height: 1;
}

.lg-concept-bridge__flow-body {
  min-width: 0;
}

.lg-concept-bridge__flow-en {
  display: block;
  margin: 0 0 3px;
  color: rgba(255, 255, 255, 0.62);
  font-family:
    Inter,
    Arial,
    sans-serif;
  font-size: 8px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.15em;
}

.lg-concept-bridge__flow-body p {
  margin: 0 !important;
  padding: 0 !important;
  color: #fff !important;
  font-family:
    "Noto Sans JP",
    "Yu Gothic",
    sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.6;
}


/* =========================================================
   最終メッセージ
========================================================= */

.lg-concept-bridge__message {
  position: relative;
  width: 100%;
  margin: 0;
  padding: 35px 38px 37px;
  overflow: hidden;
  color: #fff;
  background:
    linear-gradient(
      135deg,
      #123a32 0%,
      #1d5d4f 63%,
      #276f5e 100%
    );
  border-radius: 25px;
  box-shadow:
    0 18px 42px rgba(23, 76, 66, 0.16);
}

.lg-concept-bridge__message::after {
  position: absolute;
  right: -85px;
  bottom: -120px;
  width: 290px;
  height: 290px;
  content: "";
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 50%;
  pointer-events: none;
}

.lg-concept-bridge__message-label {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  min-height: 29px;
  margin: 0 0 15px;
  padding: 5px 12px;
  color: rgba(255, 255, 255, 0.85);
  background: rgba(255, 255, 255, 0.12);
  border-radius: 999px;
  font-family:
    Inter,
    Arial,
    sans-serif;
  font-size: 9px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.17em;
}

.lg-concept-bridge__message-title {
  position: relative;
  z-index: 2;
  max-width: 950px;
  margin: 0 0 14px !important;
  padding: 0 !important;
  color: #fff !important;
  border: 0 !important;
  font-family:
    "Noto Serif JP",
    "Yu Mincho",
    serif;
  font-size: clamp(23px, 2.7vw, 33px);
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.02em;
}

.lg-concept-bridge__message-text {
  position: relative;
  z-index: 2;
  max-width: 880px;
  margin: 0 !important;
  padding: 0 !important;
  color: rgba(255, 255, 255, 0.86) !important;
  font-family:
    "Noto Sans JP",
    "Yu Gothic",
    sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 2;
}

.lg-concept-bridge__pc {
  display: inline;
}

@media screen and (min-width: 1025px) {
  .lg-issue-talk {
    padding-bottom: 1px !important;
  }
}

/* =========================================================
   タブレット
========================================================= */

@media screen and (max-width: 1100px) {

  .lg-concept-bridge {
    padding: 72px 0 22px;
  }

  .lg-concept-bridge__inner {
    width: min(960px, calc(100% - 32px));
  }

  .lg-concept-bridge__compare {
    grid-template-columns:
      minmax(0, 1fr)
      58px
      minmax(0, 1fr) !important;
    gap: 14px;
  }

  .lg-concept-bridge__panel {
    padding: 29px 24px 27px;
  }

  .lg-concept-bridge__arrow-circle {
    width: 56px;
    height: 56px;
  }

  .lg-concept-bridge__arrow-circle span {
    font-size: 24px;
  }

  .lg-concept-bridge__issue-card p {
    font-size: 16px;
  }

}


/* =========================================================
   縦型タブレット
========================================================= */

@media screen and (max-width: 900px) {

  .lg-concept-bridge__compare {
    grid-template-columns: 1fr !important;
    grid-template-areas:
      "before"
      "arrow"
      "after";
    gap: 18px;
  }

  .lg-concept-bridge__arrow-wrap {
    min-height: 58px;
  }

  .lg-concept-bridge__arrow-circle {
    transform: rotate(90deg);
  }

  .lg-concept-bridge__panel {
    height: auto;
  }

}


/* =========================================================
   SP
========================================================= */

@media screen and (max-width: 767px) {

  .lg-concept-bridge {
    width: 100vw;
    margin-left: calc(50% - 50vw) !important;
    padding: 52px 0 18px;
  }

  .lg-concept-bridge__inner {
    width: calc(100% - 24px);
  }

  .lg-concept-bridge__header {
    margin-bottom: 29px;
  }

  .lg-concept-bridge__eyebrow {
    margin-bottom: 9px !important;
    padding-bottom: 4px;
    font-size: 10px;
  }

  .lg-concept-bridge__title {
    margin-bottom: 14px !important;
    font-size: 31px;
    line-height: 1.5;
  }

  .lg-concept-bridge__lead {
    font-size: 13px;
    line-height: 1.9;
  }

  .lg-concept-bridge__compare {
    gap: 14px;
    margin-bottom: 20px;
  }

  .lg-concept-bridge__panel {
    padding: 24px 18px 22px;
    border-radius: 21px;
  }

  .lg-concept-bridge__panel-head {
    margin-bottom: 19px;
  }

  .lg-concept-bridge__panel-label {
    min-height: 26px;
    margin-bottom: 10px;
    font-size: 8px;
  }

  .lg-concept-bridge__panel-title {
    font-size: 21px;
    line-height: 1.6;
  }

  /* BEFORE */

  .lg-concept-bridge__issue-grid {
    grid-template-columns:
      repeat(2, minmax(0, 1fr)) !important;
    gap: 8px;
  }

  .lg-concept-bridge__issue-card {
    min-height: 105px;
    padding: 14px 12px 13px;
    border-radius: 14px;
  }

  .lg-concept-bridge__issue-num {
    width: 25px;
    height: 25px;
    margin-bottom: 8px;
    font-size: 8px;
  }

  .lg-concept-bridge__issue-card p {
    font-size: 14px;
    line-height: 1.55;
  }

  .lg-concept-bridge__before-note {
    padding-top: 14px !important;
    font-size: 12px;
    line-height: 1.8;
  }

  /* 矢印 */

  .lg-concept-bridge__arrow-wrap {
    min-height: 48px;
  }

  .lg-concept-bridge__arrow-circle {
    width: 48px;
    height: 48px;
  }

  .lg-concept-bridge__arrow-circle span {
    font-size: 20px;
  }

  /* AFTER */

  .lg-concept-bridge__flow {
    gap: 9px;
  }

  .lg-concept-bridge__flow-step {
    grid-template-columns:
      34px
      minmax(0, 1fr);
    gap: 11px;
    min-height: 64px;
    padding: 12px 13px;
    border-radius: 13px;
  }

  .lg-concept-bridge__flow-step:not(:last-child)::after {
    bottom: -10px;
    left: 29px;
    height: 10px;
  }

  .lg-concept-bridge__flow-num {
    width: 34px;
    height: 34px;
    font-size: 8px;
  }

  .lg-concept-bridge__flow-en {
    font-size: 7px;
  }

  .lg-concept-bridge__flow-body p {
    font-size: 12.5px;
    line-height: 1.55;
  }

  /* メッセージ */

  .lg-concept-bridge__message {
    padding: 24px 19px 25px;
    border-radius: 20px;
  }

  .lg-concept-bridge__message-label {
    min-height: 26px;
    margin-bottom: 11px;
    font-size: 8px;
  }

  .lg-concept-bridge__message-title {
    margin-bottom: 12px !important;
    font-size: 20px;
    line-height: 1.68;
  }

  .lg-concept-bridge__message-text {
    font-size: 13px;
    line-height: 1.88;
  }

  .lg-concept-bridge__pc {
    display: none;
  }

}


/* =========================================================
   小さいSP
========================================================= */

@media screen and (max-width: 390px) {

  .lg-concept-bridge__title {
    font-size: 29px;
  }

  .lg-concept-bridge__issue-grid {
    grid-template-columns: 1fr !important;
  }

  .lg-concept-bridge__issue-card {
    min-height: auto;
  }

}
/* =========================================================
   Concept Bridge｜AFTERカード内レイアウト強制修正
========================================================= */

/* TCDが自動挿入する不要要素をカード内から除外 */
.lg-concept-bridge__flow-step > br,
.lg-concept-bridge__flow-step > p:empty,
.lg-concept-bridge__flow-step > div:empty,
.lg-concept-bridge__flow-body > br,
.lg-concept-bridge__flow-body > p:empty {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

/* AFTERカード一覧 */
.lg-concept-bridge__flow {
  position: relative !important;
  z-index: 2 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* 各ステップを横並びで固定 */
.lg-concept-bridge__flow-step {
  position: relative !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 15px !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 76px !important;
  margin: 0 !important;
  padding: 15px 17px !important;
  overflow: visible !important;
  background: rgba(255, 255, 255, 0.11) !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
  border-radius: 15px !important;
}

/* ステップ間の接続線 */
.lg-concept-bridge__flow-step:not(:last-child)::after {
  position: absolute !important;
  bottom: -13px !important;
  left: 36px !important;
  z-index: 3 !important;
  display: block !important;
  width: 1px !important;
  height: 13px !important;
  content: "" !important;
  background: rgba(255, 255, 255, 0.34) !important;
}

/* 番号 */
.lg-concept-bridge__flow-num {
  position: relative !important;
  z-index: 2 !important;
  display: inline-flex !important;
  flex: 0 0 40px !important;
  align-items: center !important;
  justify-content: center !important;
  width: 40px !important;
  height: 40px !important;
  min-width: 40px !important;
  max-width: 40px !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #174c42 !important;
  background: #fff !important;
  border-radius: 50% !important;
  font-family: Arial, sans-serif !important;
  font-size: 9px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  writing-mode: horizontal-tb !important;
  white-space: nowrap !important;
}

/* テキスト領域を残り幅いっぱいに固定 */
.lg-concept-bridge__flow-body {
  position: relative !important;
  z-index: 2 !important;
  display: block !important;
  flex: 1 1 auto !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  writing-mode: horizontal-tb !important;
  text-orientation: mixed !important;
}

/* 英字ラベル */
.lg-concept-bridge__flow-en {
  display: block !important;
  width: 100% !important;
  margin: 0 0 4px !important;
  padding: 0 !important;
  color: rgba(255, 255, 255, 0.65) !important;
  font-family: Arial, sans-serif !important;
  font-size: 8px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  letter-spacing: 0.15em !important;
  writing-mode: horizontal-tb !important;
  white-space: normal !important;
  word-break: normal !important;
}

/* 日本語本文 */
.lg-concept-bridge__flow-body p {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #fff !important;
  font-family:
    "Noto Sans JP",
    "Hiragino Kaku Gothic ProN",
    "Yu Gothic",
    sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.65 !important;
  letter-spacing: 0.02em !important;
  text-align: left !important;
  writing-mode: horizontal-tb !important;
  text-orientation: mixed !important;
  white-space: normal !important;
  word-break: keep-all !important;
  overflow-wrap: anywhere !important;
}

/* AFTERパネルの高さを内容に合わせる */
.lg-concept-bridge__panel--after {
  height: auto !important;
  min-height: 0 !important;
}

.lg-concept-bridge__panel--after
.lg-concept-bridge__panel-head {
  flex: 0 0 auto !important;
}

/* =========================================================
   タブレット・SP
========================================================= */

@media screen and (max-width: 900px) {

  .lg-concept-bridge__flow-step {
    min-height: 70px !important;
    padding: 14px 15px !important;
  }

  .lg-concept-bridge__flow-body p {
    font-size: 13.5px !important;
  }

}

@media screen and (max-width: 767px) {

  .lg-concept-bridge__flow {
    gap: 9px !important;
  }

  .lg-concept-bridge__flow-step {
    gap: 12px !important;
    min-height: 64px !important;
    padding: 12px 13px !important;
    border-radius: 13px !important;
  }

  .lg-concept-bridge__flow-step:not(:last-child)::after {
    bottom: -10px !important;
    left: 29px !important;
    height: 10px !important;
  }

  .lg-concept-bridge__flow-num {
    flex-basis: 34px !important;
    width: 34px !important;
    height: 34px !important;
    min-width: 34px !important;
    max-width: 34px !important;
    font-size: 8px !important;
  }

  .lg-concept-bridge__flow-en {
    margin-bottom: 2px !important;
    font-size: 7px !important;
  }

  .lg-concept-bridge__flow-body p {
    font-size: 12.5px !important;
    line-height: 1.55 !important;
  }

}
/* =========================
   Concept section / SP余白調整
========================= */
@media screen and (max-width: 767px) {

  .lg-concept-bridge {
    padding-top: 48px !important;
    padding-bottom: 18px !important;
  }

  .lg-concept-bridge__inner {
    gap: 0 !important;
  }

  /* PCで付けた高さをSPでは解除 */
  .lg-concept-bridge__compare,
  .lg-concept-bridge__panels,
  .lg-concept-bridge__panel,
  .lg-concept-bridge__panel--after {
    height: auto !important;
    min-height: 0 !important;
  }

  /* AFTERブロックの下の余白を詰める */
  .lg-concept-bridge__panel--after {
    margin-bottom: 0 !important;
  }

  /* 下の緑ブロックとの間隔を詰める */
  .lg-concept-bridge__approach,
  .lg-concept-bridge__summary,
  .lg-concept-bridge__message,
  .lg-concept-bridge__footer {
    margin-top: 0 !important;
  }

  /* もし wrapper 側に余白がある場合も潰す */
  .lg-concept-bridge__panel-wrap,
  .lg-concept-bridge__bottom {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

}

/* =========================================================
   Concept Bridge下〜SERVICE上の余白 最終調整
   前セクションの余白だけ縮め、SERVICEの見出し余白は残す
========================================================= */

/* Concept Bridgeを囲むTCDフリースペースの下余白を削除 */
.p-cb-item:has(.lg-concept-bridge),
.p-cb-free:has(.lg-concept-bridge) {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

.p-cb-item:has(.lg-concept-bridge) .p-cb-free__inner,
.p-cb-item:has(.lg-concept-bridge) .p-cb-free__content,
.p-cb-free:has(.lg-concept-bridge) .p-cb-free__inner,
.p-cb-free:has(.lg-concept-bridge) .p-cb-free__content {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* SERVICEセクションは上部の見出し余白を確保 */
#section-1.p-cb-service {
  margin-top: 0 !important;
  padding-top: 58px !important;
}

#section-1 .p-cb-service__inner {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

@media screen and (max-width: 1024px) {

  #section-1.p-cb-service {
    padding-top: 50px !important;
  }

}

@media screen and (max-width: 767px) {

  #section-1.p-cb-service {
    padding-top: 38px !important;
  }

}
/* =========================================================
   Life & Grow｜Growth Flow
   白背景 × 黄緑ニュアンス版
   番号位置修正版
========================================================= */

.lg-growth-flow,
.lg-growth-flow *,
.lg-growth-flow *::before,
.lg-growth-flow *::after {
  box-sizing: border-box;
}

.lg-growth-flow {
  position: relative;
  width: 100%;
  max-width: none !important;
  margin: 0 !important;
  padding: 0px 0 60px;
  overflow: hidden;
  color: #18352e;
  background: #fff;
}

/* 上端0pxから始まる黄緑ニュアンス */
.lg-growth-flow::before {
  position: absolute;
  top: 0;
  right: -120px;
  width: 420px;
  height: 420px;
  content: "";
  background:
    radial-gradient(
      circle,
      rgba(180, 214, 194, 0.18) 0%,
      rgba(180, 214, 194, 0.07) 38%,
      rgba(180, 214, 194, 0) 72%
    );
  border-radius: 50%;
  pointer-events: none;
}

.lg-growth-flow::after {
  position: absolute;
  bottom: 60px;
  left: -140px;
  width: 360px;
  height: 360px;
  content: "";
  background:
    radial-gradient(
      circle,
      rgba(212, 231, 219, 0.24) 0%,
      rgba(212, 231, 219, 0) 74%
    );
  border-radius: 50%;
  pointer-events: none;
}

.lg-growth-flow__inner {
  position: relative;
  z-index: 2;
  width: min(1080px, calc(100% - 40px));
  margin: 0 auto;
}


/* =========================================================
   TCD自動挿入対策
========================================================= */

.lg-growth-flow__timeline > br,
.lg-growth-flow__timeline > p:empty,
.lg-growth-flow__timeline > div:empty,
.lg-growth-flow__step > br,
.lg-growth-flow__step > p:empty,
.lg-growth-flow__card > br,
.lg-growth-flow__card > p:empty,
.lg-growth-flow__content > br,
.lg-growth-flow__content > p:empty {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}


/* =========================================================
   Header
========================================================= */

.lg-growth-flow__header {
  max-width: 860px;
  margin: 0 auto 60px;
  text-align: center;
}

.lg-growth-flow__eyebrow {
  display: inline-block;
  margin: 0 0 14px !important;
  padding: 0 0 9px;
  color: #5f987c !important;
  border-bottom: 1px solid rgba(31, 111, 92, 0.18);
  font-family: Arial, sans-serif;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.22em;
}

.lg-growth-flow__title {
  margin: 0 0 18px !important;
  padding: 0 !important;
  color: #174c42 !important;
  border: 0 !important;
  font-family:
    "Noto Serif JP",
    "Yu Mincho",
    serif;
  font-size: clamp(34px, 4vw, 52px);
  font-weight: 700;
  line-height: 1.48;
  letter-spacing: 0.03em;
}

.lg-growth-flow__lead {
  max-width: 780px;
  margin: 0 auto !important;
  padding: 0 !important;
  color: #64716b !important;
  font-family:
    "Noto Sans JP",
    "Yu Gothic",
    sans-serif;
  font-size: 15px;
  line-height: 2;
}


/* =========================================================
   Timeline
========================================================= */

.lg-growth-flow__timeline {
  /* タイムライン軸とカード開始位置 */
  --lg-flow-axis: 28px;
  --lg-flow-offset: 74px;

  position: relative;
  width: min(980px, 100%);
  margin: 0 auto;
  padding-left: var(--lg-flow-offset);
}

.lg-growth-flow__timeline::before {
  position: absolute;
  top: 12px;
  bottom: 12px;
  left: var(--lg-flow-axis);
  width: 2px;
  content: "";
  background:
    linear-gradient(
      180deg,
      rgba(155, 195, 176, 0.15) 0%,
      rgba(155, 195, 176, 0.55) 12%,
      rgba(155, 195, 176, 0.55) 88%,
      rgba(155, 195, 176, 0.15) 100%
    );
}

.lg-growth-flow__step {
  position: relative;
  width: 100%;
  margin: 0 0 28px;
  padding: 0 !important;
}

.lg-growth-flow__step:last-child {
  margin-bottom: 0;
}

/* 以前の左右交互配置を解除 */
.lg-growth-flow__step:nth-child(odd),
.lg-growth-flow__step:nth-child(even) {
  padding: 0 !important;
}


/* =========================================================
   Number node
========================================================= */

.lg-growth-flow__node {
  position: absolute;
  top: 50%;

  /*
   * stepはタイムラインのpadding後から始まるため、
   * 軸位置との差分をマイナス指定して固定
   */
  left:
    calc(
      var(--lg-flow-axis) - var(--lg-flow-offset)
    );

  z-index: 5;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  transform: translate(-50%, -50%);
  color: #fff !important;
  background:
    linear-gradient(
      135deg,
      #1b5e4f 0%,
      #2c7b67 100%
    );
  border: 4px solid #fff;
  border-radius: 50%;
  box-shadow:
    0 8px 18px rgba(23, 76, 66, 0.12),
    0 2px 6px rgba(23, 76, 66, 0.08);
  font-family: Arial, sans-serif;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.06em;
}


/* =========================================================
   Card
========================================================= */

.lg-growth-flow__card {
  position: relative;
  display: grid;
  grid-template-columns:
    230px
    minmax(0, 1fr);
  align-items: center;
  gap: 26px;
  width: 100%;
  min-width: 0;
  min-height: 236px;
  padding: 22px;
  background: #fff;
  border: 1px solid rgba(143, 183, 164, 0.26);
  border-radius: 28px;
  box-shadow:
    0 16px 36px rgba(23, 76, 66, 0.05),
    0 3px 10px rgba(23, 76, 66, 0.03);
}

/* ノードからカードまでの接続線 */
.lg-growth-flow__card::before {
  position: absolute;
  top: 50%;
  left:
    calc(
      var(--lg-flow-axis) - var(--lg-flow-offset)
    );
  width:
    calc(
      var(--lg-flow-offset) - var(--lg-flow-axis)
    );
  height: 2px;
  content: "";
  transform: translateY(-50%);
  background: rgba(155, 195, 176, 0.55);
}

/* 以前の左右反転を無効化 */
.lg-growth-flow__step:nth-child(even)
.lg-growth-flow__card {
  flex-direction: unset !important;
}


/* =========================================================
   Visual
========================================================= */

.lg-growth-flow__visual {
  display: flex;
  min-width: 0;
}

.lg-growth-flow__visual-box {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 190px;
  overflow: hidden;
  background:
    linear-gradient(
      135deg,
      #f8fcf9 0%,
      #edf6f0 100%
    );
  border: 1px dashed rgba(143, 183, 164, 0.42);
  border-radius: 22px;
}

.lg-growth-flow__visual-box::before {
  position: absolute;
  top: -34px;
  right: -34px;
  width: 118px;
  height: 118px;
  content: "";
  border: 1px solid rgba(143, 183, 164, 0.18);
  border-radius: 50%;
}

.lg-growth-flow__visual-placeholder {
  color: rgba(23, 76, 66, 0.28);
  font-family: Arial, sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.18em;
}

.lg-growth-flow__visual-note {
  position: absolute;
  bottom: 14px;
  left: 14px;
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 5px 10px;
  color: #4d8b70;
  background: rgba(255, 255, 255, 0.9);
  border-radius: 999px;
  box-shadow:
    0 4px 10px rgba(23, 76, 66, 0.05);
  font-family: Arial, sans-serif;
  font-size: 8px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.1em;
}


/* =========================================================
   実画像差し替え用
========================================================= */

.lg-growth-flow__visual-box img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 190px;
  margin: 0 !important;
  padding: 0 !important;
  object-fit: cover;
  border: 0 !important;
  border-radius: 22px !important;
  box-shadow: none !important;
}


/* =========================================================
   Content
========================================================= */

.lg-growth-flow__content {
  min-width: 0;
}

.lg-growth-flow__phase {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 12px !important;
  padding: 0 !important;
  color: #2f7b62 !important;
  font-family:
    "Noto Sans JP",
    "Yu Gothic",
    sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
}

.lg-growth-flow__phase::before {
  flex: 0 0 30px;
  width: 30px;
  height: 1px;
  content: "";
  background: rgba(95, 152, 124, 0.38);
}

.lg-growth-flow__service {
  margin: 0 0 14px !important;
  padding: 0 !important;
  color: #174c42 !important;
  border: 0 !important;
  font-family:
    "Noto Serif JP",
    "Yu Mincho",
    serif;
  font-size: clamp(24px, 2.5vw, 38px);
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0.01em;
}

.lg-growth-flow__desc {
  margin: 0 !important;
  padding: 0 !important;
  color: #637069 !important;
  font-family:
    "Noto Sans JP",
    "Yu Gothic",
    sans-serif;
  font-size: 15px;
  line-height: 1.95;
}


/* =========================================================
   Message
========================================================= */

.lg-growth-flow__message {
  position: relative;
  margin-top: 42px;
  padding: 35px 38px 37px;
  overflow: hidden;
  color: #fff;
  background:
    linear-gradient(
      135deg,
      #143d35 0%,
      #1d5e4f 58%,
      #2b7562 100%
    );
  border-radius: 26px;
  box-shadow:
    0 18px 42px rgba(23, 76, 66, 0.13);
}

.lg-growth-flow__message::before {
  position: absolute;
  right: -90px;
  bottom: -105px;
  width: 280px;
  height: 280px;
  content: "";
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 50%;
}

.lg-growth-flow__message-label {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  margin: 0 0 14px !important;
  padding: 5px 11px;
  color: rgba(255, 255, 255, 0.86) !important;
  background: rgba(255, 255, 255, 0.12);
  border-radius: 999px;
  font-family: Arial, sans-serif;
  font-size: 9px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.16em;
}

.lg-growth-flow__message-title {
  position: relative;
  z-index: 2;
  margin: 0 0 14px !important;
  padding: 0 !important;
  color: #fff !important;
  border: 0 !important;
  font-family:
    "Noto Serif JP",
    "Yu Mincho",
    serif;
  font-size: clamp(23px, 2.8vw, 33px);
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.02em;
}

.lg-growth-flow__message-text {
  position: relative;
  z-index: 2;
  max-width: 850px;
  margin: 0 !important;
  padding: 0 !important;
  color: rgba(255, 255, 255, 0.88) !important;
  font-family:
    "Noto Sans JP",
    "Yu Gothic",
    sans-serif;
  font-size: 14px;
  line-height: 2;
}

.lg-growth-flow__pc {
  display: inline;
}


/* =========================================================
   Hover
========================================================= */

@media (hover: hover) {

  .lg-growth-flow__card {
    transition:
      transform 0.35s ease,
      box-shadow 0.35s ease,
      border-color 0.35s ease;
  }

  .lg-growth-flow__card:hover {
    border-color: rgba(95, 152, 124, 0.3);
    box-shadow:
      0 22px 46px rgba(23, 76, 66, 0.08),
      0 5px 12px rgba(23, 76, 66, 0.04);
    transform: translateY(-4px);
  }

}


/* =========================================================
   Tablet
========================================================= */

@media screen and (max-width: 1024px) {

  .lg-growth-flow {
    padding: 82px 0 92px;
  }

  .lg-growth-flow__inner {
    width: min(960px, calc(100% - 32px));
  }

  .lg-growth-flow__header {
    margin-bottom: 52px;
  }

  .lg-growth-flow__timeline {
    --lg-flow-axis: 26px;
    --lg-flow-offset: 68px;

    width: 100%;
  }

  .lg-growth-flow__node {
    width: 50px;
    height: 50px;
    font-size: 11px;
  }

  .lg-growth-flow__card {
    grid-template-columns:
      200px
      minmax(0, 1fr);
    gap: 20px;
    min-height: 216px;
    padding: 18px;
  }

  .lg-growth-flow__visual-box,
  .lg-growth-flow__visual-box img {
    min-height: 172px;
  }

  .lg-growth-flow__service {
    font-size: 31px;
  }

}


/* =========================================================
   SP
========================================================= */

@media screen and (max-width: 767px) {

  .lg-growth-flow {
    padding: 58px 0 64px;
  }

  /* SPでも上端から黄緑ニュアンスを残す */
  .lg-growth-flow::before {
    top: 0;
    right: -180px;
    display: block;
    width: 330px;
    height: 330px;
    background:
      radial-gradient(
        circle,
        rgba(180, 214, 194, 0.15) 0%,
        rgba(180, 214, 194, 0) 72%
      );
  }

  .lg-growth-flow::after {
    display: none;
  }

  .lg-growth-flow__inner {
    width: calc(100% - 24px);
  }

  .lg-growth-flow__header {
    margin-bottom: 34px;
  }

  .lg-growth-flow__eyebrow {
    margin-bottom: 11px !important;
    padding-bottom: 6px;
    font-size: 10px;
  }

  .lg-growth-flow__title {
    margin-bottom: 14px !important;
    font-size: 30px;
    line-height: 1.48;
  }

  .lg-growth-flow__lead {
    font-size: 13px;
    line-height: 1.9;
  }

  .lg-growth-flow__pc {
    display: none;
  }

  .lg-growth-flow__timeline {
    --lg-flow-axis: 17px;
    --lg-flow-offset: 46px;

    width: 100%;
  }

  .lg-growth-flow__timeline::before {
    top: 10px;
    bottom: 10px;
  }

  .lg-growth-flow__step {
    margin-bottom: 16px;
  }

  .lg-growth-flow__node {
    top: 20px;
    width: 38px;
    height: 38px;
    transform: translate(-50%, 0);
    border-width: 3px;
    font-size: 10px;
  }

  .lg-growth-flow__card {
    grid-template-columns: 1fr;
    gap: 14px;
    min-height: 0;
    padding: 16px;
    border-radius: 20px;
  }

  .lg-growth-flow__card::before {
    top: 20px;
    transform: none;
  }

  .lg-growth-flow__visual-box,
  .lg-growth-flow__visual-box img {
    min-height: 160px;
    border-radius: 18px !important;
  }

  .lg-growth-flow__phase {
    margin-bottom: 9px !important;
    font-size: 12px;
  }

  .lg-growth-flow__phase::before {
    flex-basis: 24px;
    width: 24px;
  }

  .lg-growth-flow__service {
    margin-bottom: 10px !important;
    font-size: 22px;
    line-height: 1.5;
  }

  .lg-growth-flow__desc {
    font-size: 13px;
    line-height: 1.85;
  }

  .lg-growth-flow__message {
    margin-top: 26px;
    padding: 25px 20px 24px;
    border-radius: 20px;
  }

  .lg-growth-flow__message-label {
    margin-bottom: 11px !important;
    font-size: 8px;
  }

  .lg-growth-flow__message-title {
    margin-bottom: 11px !important;
    font-size: 21px;
    line-height: 1.65;
  }

  .lg-growth-flow__message-text {
    font-size: 13px;
    line-height: 1.88;
  }

}


/* =========================================================
   Small SP
========================================================= */

@media screen and (max-width: 390px) {

  .lg-growth-flow__title {
    font-size: 27px;
  }

  .lg-growth-flow__timeline {
    --lg-flow-axis: 15px;
    --lg-flow-offset: 42px;
  }

  .lg-growth-flow__node {
    width: 36px;
    height: 36px;
    font-size: 9px;
  }

  .lg-growth-flow__service {
    font-size: 20px;
  }

}

// スマホの時だけ改行させるクラス
.br-sp {
    display: none;
}

@media (max-width: 600px) {
    .br-sp {
        display: block;
    }
}

/* =========================================================
   店舗集客仕組化DX Plus
   TCD AIDER child theme / full replacement CSS
   ========================================================= */

/* TCD content builder: cancel only the gap immediately before this block. */
.p-cb > .p-cb-item:has(.lg-dx-plus) {
  margin-top: -150px !important;
  padding-top: 0 !important;
}

.p-cb-item:has(.lg-dx-plus) .p-cb-item-inner,
.p-cb-item:has(.lg-dx-plus) .p-cb-free-inner,
.p-cb-item:has(.lg-dx-plus) .p-cb-free-content,
.p-cb-item:has(.lg-dx-plus) .tcdce-body {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

.lg-dx-plus,
.lg-dx-plus *,
.lg-dx-plus *::before,
.lg-dx-plus *::after {
  box-sizing: border-box;
}

.lg-dx-plus {
  position: relative;
  width: 100vw;
  max-width: none !important;
  margin: 0 0 0 calc(50% - 50vw) !important;
  padding: 70px 0 72px;
  overflow: hidden;
  color: #24302b;
  background:
    radial-gradient(circle at 100% 8%, rgba(202, 225, 211, 0.30) 0%, rgba(202, 225, 211, 0.10) 22%, rgba(202, 225, 211, 0) 46%),
    linear-gradient(180deg, #fff 0%, #fff 28%, #f7faf8 100%);
}

.lg-dx-plus::before {
  position: absolute;
  top: 72px;
  right: -166px;
  width: 430px;
  height: 430px;
  content: "";
  border: 1px solid rgba(31, 111, 92, 0.06);
  border-radius: 50%;
  pointer-events: none;
}

.lg-dx-plus::after {
  position: absolute;
  bottom: 120px;
  left: -190px;
  width: 390px;
  height: 390px;
  content: "";
  border: 1px solid rgba(31, 111, 92, 0.04);
  border-radius: 50%;
  pointer-events: none;
}

.lg-dx-plus__inner {
  position: relative;
  z-index: 2;
  width: min(1080px, calc(100% - 40px));
  margin: 0 auto;
}

/* Defend against empty nodes left by the Classic Editor. */
.lg-dx-plus p:empty,
.lg-dx-plus > br,
.lg-dx-plus__inner > br,
.lg-dx-plus__hero > br,
.lg-dx-plus__problem-grid > br,
.lg-dx-plus__services > br,
.lg-dx-plus__flow > br,
.lg-dx-plus__cta > br {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

.lg-dx-plus :where(h2, h3, h4, p) {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

.lg-dx-plus__line {
  display: block;
}

/* ---------- HERO ---------- */
.lg-dx-plus__hero {
  display: grid;
  grid-template-columns: minmax(390px, 0.92fr) minmax(0, 1.08fr);
  gap: 52px;
  align-items: center;
  padding: 30px 0 42px;
  border-bottom: 1px solid rgba(31, 111, 92, 0.12);
}

.lg-dx-plus__eyebrow {
  display: inline-block;
  padding-bottom: 7px !important;
  border-bottom: 1px solid rgba(31, 111, 92, 0.22) !important;
  color: #1f6f5c !important;
  font-family: Arial, sans-serif;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.23em;
  margin-bottom: 15px !important;
}

.lg-dx-plus__title {
  max-width: 560px;
  color: #174c42 !important;
  font-family: "Noto Serif JP", "Yu Mincho", YuMincho, serif;
  font-size: clamp(34px, 3.6vw, 49px);
  font-weight: 700;
  line-height: 1.42;
  letter-spacing: 0.012em;
  white-space: nowrap;
}

.lg-dx-plus__system-badge {
  display: inline-grid;
  grid-template-columns: auto 3px auto;
  gap: 11px;
  align-items: center;
  margin-top: 18px;
  padding: 9px 14px;
  color: #5d8a76;
  background: rgba(234, 244, 239, 0.90);
  border: 1px solid rgba(31, 111, 92, 0.12);
  border-radius: 999px;
  font-family: Arial, sans-serif;
  font-size: 8px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.14em;
  white-space: nowrap;
}

.lg-dx-plus__system-dot {
  display: block;
  width: 3px;
  height: 3px;
  background: #1f6f5c;
  border-radius: 50%;
}

.lg-dx-plus__hero-copy {
  position: relative;
  padding-left: 32px;
}

.lg-dx-plus__hero-copy::before {
  position: absolute;
  top: 3px;
  bottom: 4px;
  left: 0;
  width: 2px;
  content: "";
  background: linear-gradient(180deg, #1f6f5c 0%, rgba(31, 111, 92, 0.18) 100%);
}

.lg-dx-plus__catch {
  color: #174c42 !important;
  font-family: "Noto Serif JP", "Yu Mincho", YuMincho, serif;
  font-size: clamp(25px, 2.7vw, 34px);
  font-weight: 700;
  line-height: 1.65;
  letter-spacing: 0.02em;
  margin-bottom: 14px !important;
}

.lg-dx-plus__lead {
  max-width: 510px;
  color: #616d67 !important;
  font-family: "Noto Sans JP", "Yu Gothic", YuGothic, sans-serif;
  font-size: 14px;
  line-height: 1.95;
}

/* ---------- WHY PACKAGE ---------- */
.lg-dx-plus__problem {
  margin-top: 36px;
  padding: 36px 38px 30px;
  background: rgba(255, 255, 255, 0.97);
  border: 1px solid rgba(31, 111, 92, 0.12);
  border-radius: 26px;
  box-shadow: 0 18px 44px rgba(23, 76, 66, 0.055), 0 3px 10px rgba(23, 76, 66, 0.024);
}

.lg-dx-plus__section-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 0.62fr);
  gap: 46px;
  align-items: end;
  margin-bottom: 26px;
}

.lg-dx-plus__section-en,
.lg-dx-plus__solution-en {
  color: #739987 !important;
  font-family: Arial, sans-serif;
  font-size: 8px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.22em;
  margin-bottom: 9px !important;
}

.lg-dx-plus__section-title {
  color: #174c42 !important;
  font-family: "Noto Serif JP", "Yu Mincho", YuMincho, serif;
  font-size: clamp(25px, 2.8vw, 34px);
  font-weight: 700;
  line-height: 1.58;
  letter-spacing: 0.02em;
}

.lg-dx-plus__section-copy {
  padding-left: 18px !important;
  color: #69746f !important;
  border-left: 1px solid rgba(31, 111, 92, 0.24) !important;
  font-family: "Noto Sans JP", "Yu Gothic", YuGothic, sans-serif;
  font-size: 13px;
  line-height: 1.85;
}

.lg-dx-plus__problem-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 50px minmax(0, 1fr);
  gap: 14px;
  align-items: center;
}

.lg-dx-plus__problem-card {
  min-width: 0;
  min-height: 148px;
  padding: 21px 22px 20px;
  background: linear-gradient(135deg, #fbfdfc 0%, #f5f9f7 100%);
  border: 1px dashed rgba(31, 111, 92, 0.23);
  border-radius: 18px;
}

.lg-dx-plus__problem-meta {
  display: flex;
  gap: 11px;
  align-items: center;
  margin-bottom: 13px;
}

.lg-dx-plus__problem-num,
.lg-dx-plus__service-num {
  display: inline-flex;
  flex: 0 0 31px;
  align-items: center;
  justify-content: center;
  width: 31px;
  height: 31px;
  border-radius: 50%;
  font-family: Arial, sans-serif;
  font-size: 9px;
  font-weight: 700;
}

.lg-dx-plus__problem-num {
  color: #1f6f5c;
  background: #dfede7;
}

.lg-dx-plus__problem-label,
.lg-dx-plus__service-category {
  color: #769989;
  font-family: Arial, sans-serif;
  font-size: 8px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.15em;
}

.lg-dx-plus__problem-text {
  color: #414c47 !important;
  font-family: "Noto Sans JP", "Yu Gothic", YuGothic, sans-serif;
  font-size: 14px;
  line-height: 1.85;
}

.lg-dx-plus__problem-plus {
  display: flex;
  align-items: center;
  justify-content: center;
}

.lg-dx-plus__problem-plus span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  color: #1f6f5c;
  background: #fff;
  border: 1px solid rgba(31, 111, 92, 0.16);
  border-radius: 50%;
  box-shadow: 0 9px 23px rgba(23, 76, 66, 0.08);
  font-family: Arial, sans-serif;
  font-size: 23px;
  line-height: 1;
}

.lg-dx-plus__problem-answer {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  margin-top: 20px;
  text-align: center;
}

.lg-dx-plus__answer-line {
  display: block;
  width: 1px;
  height: 16px;
  background: rgba(31, 111, 92, 0.28);
}

.lg-dx-plus__answer-en {
  display: block;
  color: #769989;
  font-family: Arial, sans-serif;
  font-size: 7px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.18em;
}

.lg-dx-plus__answer-copy {
  color: #1f6f5c;
  font-family: "Noto Serif JP", "Yu Mincho", YuMincho, serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.6;
}

.lg-dx-plus__answer-arrow {
  color: #1f6f5c;
  font-family: Arial, sans-serif;
  font-size: 18px;
  line-height: 1;
}

/* ---------- STORE GROWTH SYSTEM ---------- */
.lg-dx-plus__solution {
  margin-top: 20px;
  padding: 36px 38px 34px;
  background: linear-gradient(135deg, #eaf4ef 0%, #f7fbf9 50%, #eef6f2 100%);
  border: 1px solid rgba(31, 111, 92, 0.14);
  border-radius: 28px;
  box-shadow: 0 21px 50px rgba(23, 76, 66, 0.07);
}

.lg-dx-plus__solution-header {
  display: grid;
  grid-template-columns: minmax(290px, 0.82fr) minmax(0, 1.18fr);
  gap: 48px;
  align-items: end;
  margin-bottom: 24px;
}

.lg-dx-plus__solution-title {
  color: #174c42 !important;
  font-family: "Noto Serif JP", "Yu Mincho", YuMincho, serif;
  font-size: clamp(27px, 3vw, 37px);
  font-weight: 700;
  line-height: 1.55;
}

.lg-dx-plus__solution-summary-text {
  color: #5e6b65 !important;
  font-family: "Noto Sans JP", "Yu Gothic", YuGothic, sans-serif;
  font-size: 14px;
  line-height: 1.9;
}

.lg-dx-plus__solution-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 13px;
}

.lg-dx-plus__solution-tags span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 82px;
  min-height: 29px;
  padding: 5px 13px;
  color: #4d806b;
  background: rgba(255, 255, 255, 0.80);
  border: 1px solid rgba(31, 111, 92, 0.13);
  border-radius: 999px;
  font-family: "Noto Sans JP", "Yu Gothic", YuGothic, sans-serif;
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}

.lg-dx-plus__services {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 13px;
}

.lg-dx-plus__service {
  position: relative;
  min-width: 0;
  min-height: 176px;
  padding: 21px 22px 40px 25px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.97);
  border: 1px solid rgba(31, 111, 92, 0.13);
  border-radius: 18px;
  box-shadow: 0 10px 25px rgba(23, 76, 66, 0.04);
}

.lg-dx-plus__service::before {
  position: absolute;
  top: 21px;
  bottom: 21px;
  left: 0;
  width: 3px;
  content: "";
  background: linear-gradient(180deg, #1f6f5c 0%, rgba(31, 111, 92, 0.1) 100%);
  border-radius: 0 999px 999px 0;
}

.lg-dx-plus__service::after {
  position: absolute;
  right: -37px;
  bottom: -46px;
  width: 135px;
  height: 135px;
  content: "";
  border: 1px solid rgba(31, 111, 92, 0.055);
  border-radius: 50%;
}

.lg-dx-plus__service-top {
  position: relative;
  z-index: 2;
  display: flex;
  gap: 10px;
  align-items: center;
  margin-bottom: 11px;
}

.lg-dx-plus__service-num {
  color: #fff;
  background: #1f6f5c;
}

.lg-dx-plus__service-name {
  position: relative;
  z-index: 2;
  color: #174c42 !important;
  font-family: "Noto Serif JP", "Yu Mincho", YuMincho, serif;
  font-size: clamp(19px, 2.1vw, 24px);
  font-weight: 700;
  line-height: 1.5;
  margin-bottom: 7px !important;
  overflow-wrap: anywhere;
}

.lg-dx-plus__service-role {
  position: relative;
  z-index: 2;
  max-width: 390px;
  color: #65716b !important;
  font-family: "Noto Sans JP", "Yu Gothic", YuGothic, sans-serif;
  font-size: 13px;
  line-height: 1.8;
}

.lg-dx-plus__service-keyword {
  position: absolute;
  right: 17px;
  bottom: 13px;
  z-index: 2;
  color: rgba(31, 111, 92, 0.58);
  font-family: "Noto Serif JP", "Yu Mincho", YuMincho, serif;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
}

/* ---------- INTEGRATED FLOW ---------- */
.lg-dx-plus__flow-panel {
  position: relative;
  margin-top: 14px;
  padding: 28px 28px 25px;
  overflow: hidden;
  color: #fff;
  background: linear-gradient(135deg, #123b32 0%, #195444 48%, #28725f 100%);
  border-radius: 21px;
  box-shadow: 0 17px 39px rgba(23, 76, 66, 0.15);
}

.lg-dx-plus__flow-panel::before {
  position: absolute;
  top: -135px;
  right: -100px;
  width: 300px;
  height: 300px;
  content: "";
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 50%;
}

.lg-dx-plus__flow-header {
  position: relative;
  z-index: 2;
  margin-bottom: 18px;
  text-align: center;
}

.lg-dx-plus__flow-label {
  color: rgba(255, 255, 255, 0.60) !important;
  font-family: Arial, sans-serif;
  font-size: 7px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.21em;
  margin-bottom: 7px !important;
}

.lg-dx-plus__flow-title {
  color: #fff !important;
  font-family: "Noto Serif JP", "Yu Mincho", YuMincho, serif;
  font-size: clamp(22px, 2.6vw, 30px);
  font-weight: 700;
  line-height: 1.55;
}

.lg-dx-plus__flow {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 24px minmax(0, 1fr) 24px minmax(0, 1fr) 24px minmax(0, 1fr);
  gap: 6px;
  align-items: center;
}

.lg-dx-plus__flow-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 112px;
  padding: 13px 7px 12px;
  text-align: center;
  background: rgba(255, 255, 255, 0.106);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 14px;
}

.lg-dx-plus__flow-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  margin-bottom: 6px;
  color: #174c42;
  background: #fff;
  border-radius: 50%;
  font-family: Arial, sans-serif;
  font-size: 8px;
  font-weight: 700;
  line-height: 1;
}

.lg-dx-plus__flow-en {
  margin-bottom: 2px;
  color: rgba(255, 255, 255, 0.62);
  font-family: Arial, sans-serif;
  font-size: 7px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.12em;
}

.lg-dx-plus__flow-item strong {
  color: #fff;
  font-family: "Noto Serif JP", "Yu Mincho", YuMincho, serif;
  font-size: 17px;
  line-height: 1.45;
}

.lg-dx-plus__flow-arrow {
  display: block;
  color: rgba(255, 255, 255, 0.68);
  font-family: Arial, sans-serif;
  font-size: 17px;
  line-height: 1;
  text-align: center;
}

.lg-dx-plus__flow-text {
  position: relative;
  z-index: 2;
  max-width: 820px;
  margin: 17px auto 0 !important;
  color: rgba(255, 255, 255, 0.84) !important;
  font-family: "Noto Sans JP", "Yu Gothic", YuGothic, sans-serif;
  font-size: 13px;
  line-height: 1.85;
  text-align: center;
}

/* ---------- CONSULTATION ---------- */
.lg-dx-plus__cta {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: 20px;
  padding: 38px 34px 32px;
  overflow: hidden;
  text-align: center;
  background: #fff;
  border: 1px solid rgba(31, 111, 92, 0.14);
  border-radius: 24px;
  box-shadow: 0 17px 41px rgba(23, 76, 66, 0.06);
}

.lg-dx-plus__cta::before {
  position: absolute;
  top: -155px;
  left: 50%;
  width: 500px;
  height: 300px;
  content: "";
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(211, 232, 220, 0.40) 0%, rgba(211, 232, 220, 0) 70%);
  pointer-events: none;
}

.lg-dx-plus__cta-label,
.lg-dx-plus__cta-title,
.lg-dx-plus__cta-text,
.lg-dx-plus__button,
.lg-dx-plus__cta-note {
  position: relative;
  z-index: 2;
}

.lg-dx-plus__cta-label {
  color: #739987 !important;
  font-family: Arial, sans-serif;
  font-size: 8px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.22em;
  margin-bottom: 9px !important;
}

.lg-dx-plus__cta-title {
  color: #174c42 !important;
  font-family: "Noto Serif JP", "Yu Mincho", YuMincho, serif;
  font-size: clamp(28px, 3.2vw, 39px);
  font-weight: 700;
  line-height: 1.55;
  letter-spacing: 0.02em;
  margin-bottom: 11px !important;
}

.lg-dx-plus__cta-text {
  max-width: 670px;
  color: #64706a !important;
  font-family: "Noto Sans JP", "Yu Gothic", YuGothic, sans-serif;
  font-size: 14px;
  line-height: 1.85;
  margin-bottom: 20px !important;
}

.lg-dx-plus__button {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 42px;
  gap: 12px;
  align-items: center;
  width: min(570px, 100%);
  min-height: 66px;
  margin: 0 auto;
  padding: 12px 13px;
  color: #fff !important;
  background: linear-gradient(135deg, #174c42 0%, #26715f 100%);
  border-radius: 999px;
  box-shadow: 0 13px 30px rgba(23, 76, 66, 0.20);
  font-family: "Noto Sans JP", "Yu Gothic", YuGothic, sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  text-decoration: none !important;
  transition: transform 0.3s, box-shadow 0.3s;
}

.lg-dx-plus__button::before {
  content: "";
  width: 42px;
  height: 42px;
}

.lg-dx-plus__button-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  color: #174c42;
  background: #fff;
  border-radius: 50%;
  font-family: Arial, sans-serif;
  font-size: 17px;
  line-height: 1;
}

.lg-dx-plus__cta-note {
  color: #76827c !important;
  font-family: "Noto Sans JP", "Yu Gothic", YuGothic, sans-serif;
  font-size: 10px;
  line-height: 1.6;
  margin-top: 10px !important;
}

@media (hover: hover) {
  .lg-dx-plus__service {
    transition: transform 0.3s, border-color 0.3s, box-shadow 0.3s;
  }

  .lg-dx-plus__service:hover {
    border-color: rgba(31, 111, 92, 0.25);
    box-shadow: 0 17px 37px rgba(23, 76, 66, 0.075);
    transform: translateY(-3px);
  }

  .lg-dx-plus__button:hover {
    box-shadow: 0 18px 36px rgba(23, 76, 66, 0.25);
    transform: translateY(-2px);
  }
}

@media screen and (max-width: 991px) {
  .p-cb > .p-cb-item:has(.lg-dx-plus) {
    margin-top: -40px !important;
  }

  .lg-dx-plus {
    padding-bottom: 62px;
  }

  .lg-dx-plus__hero {
    grid-template-columns: minmax(330px, 0.9fr) minmax(0, 1.1fr);
    gap: 36px;
  }

  .lg-dx-plus__title {
    font-size: 38px;
  }

  .lg-dx-plus__solution-header {
    gap: 34px;
  }
}

@media screen and (max-width: 767px) {
  .lg-dx-plus {
    padding-bottom: 44px;
  }

  .lg-dx-plus::before,
  .lg-dx-plus::after {
    display: none;
  }

  .lg-dx-plus__inner {
    width: calc(100% - 24px);
  }

  .lg-dx-plus__hero {
    grid-template-columns: 1fr;
    gap: 22px;
    padding: 22px 0 28px;
  }

  .lg-dx-plus__eyebrow {
    margin-bottom: 10px !important;
    font-size: 9px;
  }

  .lg-dx-plus__title {
    font-size: clamp(27px, 8.4vw, 33px);
    line-height: 1.45;
    white-space: normal;
  }

  .lg-dx-plus__system-badge {
    gap: 8px;
    margin-top: 13px;
    padding: 8px 11px;
    font-size: 7px;
  }

  .lg-dx-plus__hero-copy {
    padding-left: 17px;
  }

  .lg-dx-plus__catch {
    font-size: 21px;
    line-height: 1.62;
    margin-bottom: 11px !important;
  }

  .lg-dx-plus__lead {
    font-size: 13px;
    line-height: 1.82;
  }

  .lg-dx-plus__problem {
    margin-top: 20px;
    padding: 23px 15px 20px;
    border-radius: 20px;
  }

  .lg-dx-plus__section-header {
    grid-template-columns: 1fr;
    gap: 12px;
    margin-bottom: 18px;
  }

  .lg-dx-plus__section-title {
    font-size: 21px;
  }

  .lg-dx-plus__section-copy {
    padding-left: 13px !important;
    font-size: 12px;
  }

  .lg-dx-plus__problem-grid {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .lg-dx-plus__problem-card {
    min-height: 0;
    padding: 16px 14px 15px;
    border-radius: 14px;
  }

  .lg-dx-plus__problem-meta {
    margin-bottom: 9px;
  }

  .lg-dx-plus__problem-num,
  .lg-dx-plus__service-num {
    width: 27px;
    height: 27px;
    flex-basis: 27px;
    font-size: 8px;
  }

  .lg-dx-plus__problem-text {
    font-size: 12.5px;
    line-height: 1.78;
  }

  .lg-dx-plus__problem-plus span {
    width: 36px;
    height: 36px;
    font-size: 19px;
  }

  .lg-dx-plus__problem-answer {
    gap: 5px;
    margin-top: 14px;
  }

  .lg-dx-plus__answer-line {
    height: 13px;
  }

  .lg-dx-plus__answer-copy {
    font-size: 15px;
    line-height: 1.55;
  }

  .lg-dx-plus__solution {
    margin-top: 15px;
    padding: 23px 14px 16px;
    border-radius: 21px;
  }

  .lg-dx-plus__solution-header {
    grid-template-columns: 1fr;
    gap: 14px;
    margin-bottom: 17px;
  }

  .lg-dx-plus__solution-title {
    font-size: 22px;
  }

  .lg-dx-plus__solution-summary-text {
    font-size: 12.5px;
    line-height: 1.8;
  }

  .lg-dx-plus__solution-tags {
    gap: 6px;
    margin-top: 10px;
  }

  .lg-dx-plus__solution-tags span {
    flex: 1 1 calc(33.333% - 4px);
    min-width: 0;
    min-height: 28px;
    padding: 5px 7px;
    font-size: 9px;
  }

  .lg-dx-plus__services {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .lg-dx-plus__service {
    min-height: 0;
    padding: 16px 14px 36px 17px;
    border-radius: 14px;
  }

  .lg-dx-plus__service::before {
    top: 16px;
    bottom: 16px;
  }

  .lg-dx-plus__service-top {
    margin-bottom: 8px;
  }

  .lg-dx-plus__service-name {
    margin-bottom: 5px !important;
    font-size: 18px;
  }

  .lg-dx-plus__service-role {
    font-size: 12px;
    line-height: 1.75;
  }

  .lg-dx-plus__service-keyword {
    right: 13px;
    bottom: 10px;
    font-size: 11px;
  }

  .lg-dx-plus__flow-panel {
    margin-top: 10px;
    padding: 21px 12px 18px;
    border-radius: 17px;
  }

  .lg-dx-plus__flow-header {
    margin-bottom: 14px;
  }

  .lg-dx-plus__flow-title {
    font-size: 19px;
    line-height: 1.5;
  }

  .lg-dx-plus__flow {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
  }

  .lg-dx-plus__flow-arrow {
    display: none;
  }

  .lg-dx-plus__flow-item {
    min-height: 101px;
    padding: 12px 6px 11px;
    border-radius: 11px;
  }

  .lg-dx-plus__flow-item strong {
    font-size: 15px;
  }

  .lg-dx-plus__flow-text {
    margin-top: 14px !important;
    font-size: 12px;
    line-height: 1.78;
    text-align: left;
  }

  .lg-dx-plus__cta {
    margin-top: 15px;
    padding: 26px 16px 21px;
    border-radius: 19px;
  }

  .lg-dx-plus__cta-title {
    font-size: 24px;
    line-height: 1.52;
    margin-bottom: 10px !important;
  }

  .lg-dx-plus__cta-text {
    font-size: 12.5px;
    line-height: 1.78;
    margin-bottom: 16px !important;
  }

  .lg-dx-plus__button {
    grid-template-columns: 34px minmax(0, 1fr) 34px;
    gap: 7px;
    min-height: 58px;
    padding: 9px 10px;
    font-size: 11.5px;
  }

  .lg-dx-plus__button::before,
  .lg-dx-plus__button-arrow {
    width: 34px;
    height: 34px;
  }

  .lg-dx-plus__button-arrow {
    font-size: 15px;
  }
}

@media screen and (max-width: 374px) {
  .lg-dx-plus__title {
    font-size: 26px;
  }

  .lg-dx-plus__system-badge {
    letter-spacing: 0.09em;
  }

  .lg-dx-plus__cta-title {
    font-size: 22px;
  }

  .lg-dx-plus__button {
    font-size: 10.5px;
  }
}

/* =========================================================
   TCD Classic Editor compatibility / final override
   Supports both the current rendered HTML and the clean HTML.
   Keep this block at the very end of the DX Plus CSS.
   ========================================================= */

/* When the same DX block exists more than once, keep the last one.
   The last block is the intended position after the SERVICE section. */
body:has(#section-107 .lg-dx-plus) #section-15:has(.lg-dx-plus) {
  display: none !important;
}

/* Remove editor-generated empty boxes and line breaks that must not
   participate in flex/grid layout. Intentional copy line breaks remain. */
.lg-dx-plus :where(
  .lg-dx-plus__hero-head,
  .lg-dx-plus__hero-body,
  .lg-dx-plus__system-meta,
  .lg-dx-plus__problem-meta,
  .lg-dx-plus__answer,
  .lg-dx-plus__solution-heading,
  .lg-dx-plus__solution-copy,
  .lg-dx-plus__solution-tags,
  .lg-dx-plus__service-meta,
  .lg-dx-plus__flow-item,
  .lg-dx-plus__flow-copy,
  .lg-dx-plus__cta-inner
) > p:empty,
.lg-dx-plus__services > p:empty,
.lg-dx-plus__flow > p:empty,
.lg-dx-plus__cta-inner > p:empty {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

.lg-dx-plus__system-meta > br,
.lg-dx-plus__problem-meta > br,
.lg-dx-plus__problem-label > br,
.lg-dx-plus__solution-tags > br,
.lg-dx-plus__service-meta > br,
.lg-dx-plus__service-result > br,
.lg-dx-plus__flow-copy > br,
.lg-dx-plus__flow-arrow > br,
.lg-dx-plus__answer-en > br,
.lg-dx-plus__answer-title > br:not(.lg-dx-plus__sp),
.lg-dx-plus__answer-arrow > br,
.lg-dx-plus__button > br,
.lg-dx-plus__button > span > br,
.lg-dx-plus__button-arrow > br {
  display: none !important;
}

/* Normalize intentional responsive line breaks after wpautop adds an
   extra <br>. Also remove trailing breaks that create blank rows. */
.lg-dx-plus__sp {
  display: none !important;
}

.lg-dx-plus__sp + br {
  display: inline !important;
}

.lg-dx-plus :where(
  .lg-dx-plus__title,
  .lg-dx-plus__section-title,
  .lg-dx-plus__solution-title,
  .lg-dx-plus__service-name,
  .lg-dx-plus__flow-title,
  .lg-dx-plus__cta-title
) > br:last-child {
  display: none !important;
}

/* ---------- Old/current HERO class names ---------- */
.lg-dx-plus__hero-head {
  min-width: 0;
}

.lg-dx-plus__system-meta {
  display: inline-grid !important;
  grid-template-columns: auto 3px auto;
  gap: 11px;
  align-items: center;
  margin-top: 18px !important;
  padding: 9px 14px !important;
  color: #5d8a76 !important;
  background: rgba(234, 244, 239, 0.90) !important;
  border: 1px solid rgba(31, 111, 92, 0.12) !important;
  border-radius: 999px;
  font-family: Arial, sans-serif;
  font-size: 8px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.14em;
  white-space: nowrap;
}

.lg-dx-plus__system-meta i {
  display: block !important;
  width: 3px !important;
  height: 3px !important;
  margin: 0 !important;
  background: #1f6f5c !important;
  border-radius: 50%;
}

.lg-dx-plus__hero-body {
  position: relative;
  min-width: 0;
  padding-left: 32px !important;
}

.lg-dx-plus__hero-body::before {
  position: absolute;
  top: 3px;
  bottom: 4px;
  left: 0;
  width: 2px;
  content: "";
  background: linear-gradient(180deg, #1f6f5c 0%, rgba(31, 111, 92, 0.18) 100%);
}

/* ---------- Current THE ANSWER class names ---------- */
.lg-dx-plus__answer {
  display: flex !important;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  margin-top: 20px !important;
  text-align: center;
}

.lg-dx-plus__answer > p {
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1 !important;
}

.lg-dx-plus__answer-en {
  display: block;
  color: #769989 !important;
  font-family: Arial, sans-serif;
  font-size: 7px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.18em;
}

.lg-dx-plus__answer-title {
  display: block;
  color: #1f6f5c !important;
  font-family: "Noto Serif JP", "Yu Mincho", YuMincho, serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.6 !important;
}

.lg-dx-plus__answer-arrow {
  display: block;
  color: #1f6f5c !important;
  font-family: Arial, sans-serif;
  font-size: 18px;
  line-height: 1 !important;
}

/* ---------- Current solution/service class names ---------- */
.lg-dx-plus__solution-copy > p:not(:empty) {
  color: #5e6b65 !important;
  font-family: "Noto Sans JP", "Yu Gothic", YuGothic, sans-serif;
  font-size: 14px;
  line-height: 1.9 !important;
  margin: 0 !important;
}

.lg-dx-plus__service-meta {
  position: relative;
  z-index: 2;
  display: flex !important;
  gap: 10px;
  align-items: center;
  margin-bottom: 11px !important;
}

.lg-dx-plus__service-en {
  color: #769989 !important;
  font-family: Arial, sans-serif;
  font-size: 8px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.15em;
}

.lg-dx-plus__service-text {
  position: relative;
  z-index: 2;
  max-width: 390px;
  color: #65716b !important;
  font-family: "Noto Sans JP", "Yu Gothic", YuGothic, sans-serif;
  font-size: 13px;
  line-height: 1.8 !important;
  margin: 0 !important;
}

.lg-dx-plus__service > p:has(> .lg-dx-plus__service-result) {
  position: static !important;
  display: block !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

.lg-dx-plus__service-result {
  position: absolute;
  right: 17px;
  bottom: 13px;
  z-index: 2;
  color: rgba(31, 111, 92, 0.58) !important;
  font-family: "Noto Serif JP", "Yu Mincho", YuMincho, serif;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
  white-space: nowrap;
}

/* ---------- Current flow markup ---------- */
.lg-dx-plus__flow > p:has(> .lg-dx-plus__flow-arrow) {
  display: contents !important;
}

.lg-dx-plus__flow-copy {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.lg-dx-plus__flow-copy strong {
  color: #fff !important;
  font-family: "Noto Serif JP", "Yu Mincho", YuMincho, serif;
  font-size: 17px;
  line-height: 1.45;
}

/* ---------- CTA: force exactly one visible button ---------- */
.lg-dx-plus__cta-inner {
  position: relative;
  z-index: 2;
  display: flex !important;
  flex-direction: column;
  align-items: center;
  width: 100%;
  margin: 0 auto;
}

/* Hide the empty anchor created by wpautop. */
.lg-dx-plus__cta-inner > a.lg-dx-plus__button {
  display: none !important;
}

/* Hide the separately generated arrow-only button. */
.lg-dx-plus__cta-inner > p:has(> a.lg-dx-plus__button .lg-dx-plus__button-arrow) {
  display: none !important;
}

/* Keep only the paragraph containing the text button. */
.lg-dx-plus__cta-inner > p:has(> a.lg-dx-plus__button):not(:has(.lg-dx-plus__button-arrow)) {
  display: block !important;
  width: min(570px, 100%);
  margin: 0 auto !important;
  padding: 0 !important;
}

.lg-dx-plus__cta-inner > p > a.lg-dx-plus__button {
  display: grid !important;
  grid-template-columns: 42px minmax(0, 1fr) 42px !important;
  gap: 12px !important;
  align-items: center !important;
  justify-content: stretch !important;
  width: 100% !important;
  min-height: 66px !important;
  margin: 0 auto !important;
  padding: 12px 13px !important;
  overflow: visible !important;
  color: #fff !important;
  background: linear-gradient(135deg, #174c42 0%, #26715f 100%) !important;
  border: 0 !important;
  border-radius: 999px !important;
  box-shadow: 0 13px 30px rgba(23, 76, 66, 0.20) !important;
  font-family: "Noto Sans JP", "Yu Gothic", YuGothic, sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.5 !important;
  text-align: center !important;
  text-decoration: none !important;
}

.lg-dx-plus__cta-inner > p > a.lg-dx-plus__button::before {
  display: block !important;
  width: 42px !important;
  height: 42px !important;
  content: "" !important;
}

.lg-dx-plus__cta-inner > p > a.lg-dx-plus__button::after {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  content: "→" !important;
  color: #174c42;
  background: #fff;
  border-radius: 50%;
  font-family: Arial, sans-serif;
  font-size: 17px;
  font-weight: 400;
  line-height: 1;
}

.lg-dx-plus__cta-inner > p > a.lg-dx-plus__button > span {
  display: block !important;
  min-width: 0;
  grid-column: 2;
  white-space: normal;
}

@media screen and (max-width: 767px) {
  .lg-dx-plus__sp {
    display: inline !important;
  }

  .lg-dx-plus__sp + br {
    display: none !important;
  }

  .lg-dx-plus__hero-body {
    padding-left: 17px !important;
  }

  .lg-dx-plus__system-meta {
    gap: 8px;
    margin-top: 13px !important;
    padding: 8px 11px !important;
    font-size: 7px;
  }

  .lg-dx-plus__answer {
    gap: 5px;
    margin-top: 14px !important;
  }

  .lg-dx-plus__answer-title {
    font-size: 15px;
    line-height: 1.55 !important;
  }

  .lg-dx-plus__solution-copy > p:not(:empty) {
    font-size: 12.5px;
    line-height: 1.8 !important;
  }

  .lg-dx-plus__service-meta {
    margin-bottom: 8px !important;
  }

  .lg-dx-plus__service-text {
    font-size: 12px;
    line-height: 1.75 !important;
  }

  .lg-dx-plus__service-result {
    right: 13px;
    bottom: 10px;
    font-size: 11px;
  }

  .lg-dx-plus__flow > p:has(> .lg-dx-plus__flow-arrow) {
    display: none !important;
  }

  .lg-dx-plus__flow-copy strong {
    font-size: 15px;
  }

  .lg-dx-plus__cta-inner > p:has(> a.lg-dx-plus__button):not(:has(.lg-dx-plus__button-arrow)) {
    width: 100%;
  }

  .lg-dx-plus__cta-inner > p > a.lg-dx-plus__button {
    grid-template-columns: 34px minmax(0, 1fr) 34px !important;
    gap: 7px !important;
    min-height: 58px !important;
    padding: 9px 10px !important;
    font-size: 11.5px !important;
  }

  .lg-dx-plus__cta-inner > p > a.lg-dx-plus__button::before,
  .lg-dx-plus__cta-inner > p > a.lg-dx-plus__button::after {
    width: 34px !important;
    height: 34px !important;
  }

  .lg-dx-plus__cta-inner > p > a.lg-dx-plus__button::after {
    font-size: 15px;
  }
}

/* =========================================================
   Requested typography/alignment adjustments — 2026-07-21
   Keep this block at the very end of the DX Plus CSS.
   ========================================================= */

/* Main package title: larger and aligned to the right. */
.lg-dx-plus__hero-title,
.lg-dx-plus__hero-head {
  display: flex !important;
  flex-direction: column;
  align-items: flex-end;
  min-width: 0;
  text-align: right !important;
}

.lg-dx-plus__title {
  width: 100%;
  max-width: none !important;
  font-size: clamp(44px, 4.8vw, 60px) !important;
  line-height: 1.34 !important;
  letter-spacing: 0.006em !important;
  text-align: right !important;
}

/* Supporting catch copy: intentionally calmer than the main title. */
.lg-dx-plus__catch {
  font-size: clamp(21px, 2.15vw, 27px) !important;
  line-height: 1.68 !important;
  letter-spacing: 0.018em !important;
}

/* Store Growth System heading: one step larger. */
.lg-dx-plus__solution-title {
  font-size: clamp(31px, 3.35vw, 44px) !important;
  line-height: 1.5 !important;
}

/* Explicit centering for both requested headings. */
.lg-dx-plus__flow-header,
.lg-dx-plus__flow-title {
  width: 100%;
  text-align: center !important;
}

.lg-dx-plus__cta,
.lg-dx-plus__cta-inner,
.lg-dx-plus__cta-title {
  text-align: center !important;
}

.lg-dx-plus__cta-title {
  width: 100%;
  margin-right: auto !important;
  margin-left: auto !important;
}

@media screen and (min-width: 992px) {
  .lg-dx-plus__hero {
    grid-template-columns: minmax(500px, 1.08fr) minmax(0, 0.92fr) !important;
    gap: 46px !important;
  }
}

@media screen and (max-width: 991px) {
  .lg-dx-plus__title {
    font-size: clamp(36px, 5.8vw, 47px) !important;
  }

  .lg-dx-plus__catch {
    font-size: clamp(20px, 2.7vw, 24px) !important;
  }

  .lg-dx-plus__solution-title {
    font-size: clamp(28px, 3.8vw, 36px) !important;
  }
}

@media screen and (max-width: 767px) {
  .lg-dx-plus__hero-title,
  .lg-dx-plus__hero-head {
    align-items: flex-end;
    text-align: right !important;
  }

  .lg-dx-plus__title {
    font-size: clamp(30px, 8.5vw, 36px) !important;
    line-height: 1.4 !important;
    white-space: normal !important;
  }

  .lg-dx-plus__catch {
    font-size: 19px !important;
    line-height: 1.62 !important;
  }

  .lg-dx-plus__solution-title {
    font-size: 25px !important;
    line-height: 1.5 !important;
  }

  .lg-dx-plus__flow-title {
    font-size: 20px !important;
    line-height: 1.5 !important;
  }

  .lg-dx-plus__cta-title {
    font-size: 24px !important;
    line-height: 1.52 !important;
  }
}

/* =========================================================
   Requested-only refinement — 2026-07-21
   PC title size / left-aligned package labels / solution layout
   Keep this block at the very end of the DX Plus CSS.
   ========================================================= */

/* Keep both package labels aligned to the same left edge. */
.lg-dx-plus__eyebrow,
.lg-dx-plus__system-badge,
.lg-dx-plus__system-meta {
  align-self: flex-start !important;
  text-align: left !important;
}

/* Give the description and the three introduction types one clean axis. */
.lg-dx-plus__solution-summary,
.lg-dx-plus__solution-copy {
  display: grid !important;
  min-width: 0;
  gap: 13px;
  align-content: center;
}

.lg-dx-plus__solution-summary-text,
.lg-dx-plus__solution-copy > p:not(:empty) {
  width: 100%;
  max-width: none;
  margin: 0 !important;
  text-align: left !important;
}

.lg-dx-plus__solution-tags {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  width: min(100%, 360px);
  margin-top: 0 !important;
}

.lg-dx-plus__solution-tags span {
  width: 100%;
  min-width: 0;
  padding-right: 10px;
  padding-left: 10px;
}

@media screen and (min-width: 992px) {
  /* PC only: slightly smaller than the previous 60px maximum. */
  .lg-dx-plus__title {
    font-size: clamp(42px, 4.1vw, 52px) !important;
  }

  .lg-dx-plus__solution-header {
    grid-template-columns: minmax(390px, 0.92fr) minmax(0, 1.08fr) !important;
    gap: 40px !important;
    align-items: center !important;
  }

  /* Each requested phrase remains on exactly one line. */
  .lg-dx-plus__solution-title .lg-dx-plus__line {
    white-space: nowrap;
  }
}

@media screen and (max-width: 767px) {
  .lg-dx-plus__solution-summary,
  .lg-dx-plus__solution-copy {
    gap: 10px;
  }

  .lg-dx-plus__solution-tags {
    gap: 6px;
    width: 100%;
  }
}

/* =========================================================
   SNS連携PlusBridge
   TCD AIDER child theme / full replacement CSS
   ========================================================= */

/* TCDコンテンツビルダーの直前余白をDX Plusと同じ基準で相殺 */
body .p-cb > .p-cb-item:has(.lg-plusbridge) {
  margin-top: -150px !important;
  padding-top: 0 !important;
}

.p-cb-item:has(.lg-plusbridge) {
  padding-top: 0 !important;
}

.p-cb-item:has(.lg-plusbridge) .p-cb-item-inner,
.p-cb-item:has(.lg-plusbridge) .p-cb-free-inner,
.p-cb-item:has(.lg-plusbridge) .p-cb-free-content,
.p-cb-item:has(.lg-plusbridge) .tcdce-body {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/*
 * Classic Editorがセクション直前に生成する
 * 「プレビュー文」と空段落を非表示にする。
 * この2要素が、見出し上の大きな空白の原因。
 */
.p-cb-item:has(.lg-plusbridge) .tcdce-body > p:first-child:has(+ p + .lg-plusbridge),
.p-cb-item:has(.lg-plusbridge) .tcdce-body > p:empty {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

.lg-plusbridge,
.lg-plusbridge *,
.lg-plusbridge *::before,
.lg-plusbridge *::after {
  box-sizing: border-box;
}

.lg-plusbridge {
  --pb-deep: #174c42;
  --pb-green: #1f6f5c;
  --pb-green-2: #2e816a;
  --pb-ink: #24302b;
  --pb-muted: #64716b;
  --pb-line: rgba(31, 111, 92, 0.14);
  --pb-pale: #edf6f1;
  position: relative;
  width: 100vw;
  max-width: none !important;
  margin: 0 0 0 calc(50% - 50vw) !important;
  padding: 70px 0 84px !important;
  overflow: hidden;
  color: var(--pb-ink);
  background:
    radial-gradient(circle at 93% 7%, rgba(193, 222, 207, 0.36) 0%, rgba(193, 222, 207, 0.12) 20%, rgba(193, 222, 207, 0) 43%),
    radial-gradient(circle at 4% 78%, rgba(218, 232, 225, 0.36) 0%, rgba(218, 232, 225, 0) 31%),
    linear-gradient(180deg, #ffffff 0%, #f7faf8 100%);
  border-top: 1px solid rgba(31, 111, 92, 0.08);
  isolation: isolate;
}

.lg-plusbridge::before,
.lg-plusbridge::after {
  position: absolute;
  z-index: -1;
  content: "";
  border: 1px solid rgba(31, 111, 92, 0.07);
  border-radius: 50%;
  pointer-events: none;
}

.lg-plusbridge::before {
  top: 34px;
  right: -180px;
  width: 470px;
  height: 470px;
}

.lg-plusbridge::after {
  bottom: 94px;
  left: -210px;
  width: 430px;
  height: 430px;
}

.lg-plusbridge__inner {
  position: relative;
  z-index: 2;
  width: min(1080px, calc(100% - 40px));
  margin: 0 auto;
  padding-top: 0 !important;
}

/* Classic Editorが生成する空要素を無効化 */
.lg-plusbridge p:empty,
.lg-plusbridge > br,
.lg-plusbridge__inner > br,
.lg-plusbridge__hero > br,
.lg-plusbridge__story > br,
.lg-plusbridge__network-map > br,
.lg-plusbridge__destinations > br,
.lg-plusbridge__recommend > br,
.lg-plusbridge__recommend-list > br,
.lg-plusbridge__cta > br {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

.lg-plusbridge :where(h2, h3, h4, p, ul, li) {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

.lg-plusbridge :where(h2, h3, h4, p, li, a, span, strong, small) {
  overflow-wrap: anywhere;
}

/* ---------- HERO ---------- */
.lg-plusbridge__hero {
  display: grid;
  grid-template-columns: minmax(410px, 0.92fr) minmax(0, 1.08fr);
  gap: 58px;
  align-items: center;
  margin-top: 0 !important;
  padding: 30px 0 42px !important;
  border-bottom: 1px solid var(--pb-line);
}

.lg-plusbridge__identity {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
  text-align: left !important;
}

.lg-plusbridge__eyebrow {
  display: inline-block;
  margin: 0 0 15px !important;
  padding-bottom: 7px !important;
  color: var(--pb-green) !important;
  border-bottom: 1px solid rgba(31, 111, 92, 0.24) !important;
  font-family: Arial, sans-serif;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.22em;
}

.lg-plusbridge__title {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  margin: 0 !important;
  color: var(--pb-deep) !important;
  font-family: "Noto Serif JP", "Yu Mincho", YuMincho, serif;
  font-size: clamp(42px, 4.1vw, 52px) !important;
  font-weight: 700;
  line-height: 1.34 !important;
  letter-spacing: 0.006em;
  text-align: left !important;
}

.lg-plusbridge__title span {
  font-family: inherit;
  text-align: left !important;
}

.lg-plusbridge__title span:last-child {
  padding-left: 0 !important;
  color: var(--pb-green-2);
  font-family: inherit;
  font-size: 1em;
  letter-spacing: 0.015em;
  text-align: left !important;
}

.lg-plusbridge__meta {
  display: inline-grid;
  grid-template-columns: auto 3px auto 3px auto;
  gap: 10px;
  align-items: center;
  margin-top: 19px;
  padding: 10px 14px;
  color: #5d8a76;
  background: rgba(234, 244, 239, 0.92);
  border: 1px solid rgba(31, 111, 92, 0.13);
  border-radius: 999px;
  font-family: Arial, sans-serif;
  font-size: 7.5px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.12em;
  white-space: nowrap;
}

.lg-plusbridge__meta i {
  display: block;
  width: 3px;
  height: 3px;
  background: var(--pb-green);
  border-radius: 50%;
}

.lg-plusbridge__hero-copy {
  position: relative;
  min-width: 0;
  padding: 7px 0 7px 38px;
}

.lg-plusbridge__hero-copy::before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 2px;
  content: "";
  background: linear-gradient(180deg, var(--pb-green) 0%, rgba(31, 111, 92, 0.16) 100%);
}

.lg-plusbridge__hero-label {
  margin-bottom: 13px !important;
  color: #77998a !important;
  font-family: Arial, sans-serif;
  font-size: 9px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.2em;
}

.lg-plusbridge__catch {
  color: var(--pb-deep) !important;
  font-family: "Noto Serif JP", "Yu Mincho", YuMincho, serif;
  font-size: clamp(27px, 3vw, 38px);
  font-weight: 700;
  line-height: 1.58;
  letter-spacing: 0.018em;
}

.lg-plusbridge__catch span,
.lg-plusbridge__story-heading h3 span,
.lg-plusbridge__cta h3 span {
  display: block;
}

/* ---------- STORY ---------- */
.lg-plusbridge__story {
  display: grid;
  grid-template-columns: minmax(350px, 0.88fr) minmax(0, 1.12fr);
  margin-top: 36px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid var(--pb-line);
  border-radius: 30px;
  box-shadow: 0 20px 50px rgba(23, 76, 66, 0.07);
}

.lg-plusbridge__story-heading {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 330px;
  padding: 48px 42px;
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(circle at 100% 0%, rgba(120, 188, 159, 0.22) 0%, rgba(120, 188, 159, 0) 44%),
    linear-gradient(135deg, #164b41 0%, #1f6f5c 100%);
}

.lg-plusbridge__story-heading::after {
  position: absolute;
  right: -92px;
  bottom: -118px;
  width: 285px;
  height: 285px;
  content: "";
  border: 1px solid rgba(255, 255, 255, 0.10);
  border-radius: 50%;
}

.lg-plusbridge__story-number {
  display: none !important;
}

.lg-plusbridge__story-en {
  position: relative;
  z-index: 1;
  margin-bottom: 17px !important;
  color: #b9d7ca !important;
  font-family: Arial, sans-serif;
  font-size: 8px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.19em;
}

.lg-plusbridge__story-heading h3 {
  position: relative;
  z-index: 1;
  color: #fff !important;
  font-family: "Noto Serif JP", "Yu Mincho", YuMincho, serif;
  font-size: clamp(24px, 2.45vw, 31px);
  font-weight: 700;
  line-height: 1.72;
  letter-spacing: 0.02em;
}

.lg-plusbridge__story-copy {
  display: grid;
  gap: 19px;
  align-content: center;
  min-width: 0;
  padding: 45px 46px;
}

.lg-plusbridge__story-copy p {
  position: relative;
  padding-left: 21px !important;
  color: #5b6963 !important;
  font-family: "Noto Sans JP", "Yu Gothic", YuGothic, sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.015em;
}

.lg-plusbridge__story-copy p::before {
  position: absolute;
  top: 0.82em;
  left: 0;
  width: 8px;
  height: 1px;
  content: "";
  background: rgba(31, 111, 92, 0.48);
}

/* ---------- NETWORK MAP ---------- */
.lg-plusbridge__network {
  margin-top: 28px;
  padding: 34px 36px 36px;
  background: linear-gradient(135deg, #eaf4ef 0%, #f8fbf9 52%, #edf6f1 100%);
  border: 1px solid var(--pb-line);
  border-radius: 28px;
}

.lg-plusbridge__network-header {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(260px, 0.9fr);
  gap: 42px;
  align-items: end;
  padding-bottom: 25px;
  border-bottom: 1px solid rgba(31, 111, 92, 0.12);
}

.lg-plusbridge__network-en {
  margin-bottom: 8px !important;
  color: #729584 !important;
  font-family: Arial, sans-serif;
  font-size: 8px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.19em;
}

.lg-plusbridge__network-header h3 {
  color: var(--pb-deep) !important;
  font-family: "Noto Serif JP", "Yu Mincho", YuMincho, serif;
  font-size: clamp(24px, 2.7vw, 34px);
  font-weight: 700;
  line-height: 1.55;
  letter-spacing: 0.016em;
}

.lg-plusbridge__network-header > p {
  color: var(--pb-muted) !important;
  font-family: "Noto Sans JP", "Yu Gothic", YuGothic, sans-serif;
  font-size: 13px;
  line-height: 1.8;
  text-align: right;
}

.lg-plusbridge__network-map {
  display: grid;
  grid-template-columns: minmax(210px, 0.72fr) 90px minmax(0, 1.28fr);
  gap: 0;
  align-items: stretch;
  margin-top: 28px;
}

.lg-plusbridge__source,
.lg-plusbridge__destination {
  position: relative;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.90);
  border: 1px solid rgba(31, 111, 92, 0.13);
  border-radius: 20px;
}

.lg-plusbridge__source {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 194px;
  padding: 25px;
  text-align: center;
  box-shadow: 0 13px 30px rgba(23, 76, 66, 0.07);
}

.lg-plusbridge__source::after {
  position: absolute;
  right: -45px;
  bottom: -58px;
  width: 140px;
  height: 140px;
  content: "";
  background: rgba(163, 102, 132, 0.06);
  border-radius: 50%;
}

.lg-plusbridge__node-label {
  position: absolute;
  top: 16px;
  left: 17px;
  color: #8a9b94;
  font-family: Arial, sans-serif;
  font-size: 7px;
  font-weight: 700;
  letter-spacing: 0.17em;
}

.lg-plusbridge__source-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 43px;
  height: 43px;
  margin-bottom: 12px;
  color: #fff;
  background: linear-gradient(135deg, #875f8c 0%, #b96f75 55%, #c59762 100%);
  border-radius: 14px;
  font-family: Georgia, serif;
  font-size: 21px;
  font-style: italic;
  font-weight: 700;
  box-shadow: 0 9px 18px rgba(135, 95, 140, 0.18);
}

.lg-plusbridge__source strong,
.lg-plusbridge__destination strong {
  color: var(--pb-deep);
  font-family: Arial, "Noto Sans JP", sans-serif;
  font-weight: 700;
}

.lg-plusbridge__source strong {
  font-size: 20px;
  line-height: 1.3;
}

.lg-plusbridge__source small,
.lg-plusbridge__destination small {
  display: block;
  margin-top: 7px;
  color: #7f9189;
  font-family: Arial, sans-serif;
  font-size: 6.5px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0.15em;
}

.lg-plusbridge__connector {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
}

.lg-plusbridge__connector span {
  position: absolute;
  right: 0;
  left: 0;
  height: 1px;
  background: rgba(31, 111, 92, 0.26);
}

.lg-plusbridge__connector b {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  color: var(--pb-green);
  background: #fff;
  border: 1px solid rgba(31, 111, 92, 0.17);
  border-radius: 50%;
  font-family: Arial, sans-serif;
  font-size: 14px;
  box-shadow: 0 7px 16px rgba(23, 76, 66, 0.07);
}

.lg-plusbridge__destinations {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.lg-plusbridge__destination {
  display: grid;
  grid-template-columns: 29px minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: 10px;
  align-content: center;
  min-height: 92px;
  padding: 17px 18px;
}

.lg-plusbridge__destination > span {
  display: inline-flex;
  grid-row: 1 / 3;
  align-items: center;
  justify-content: center;
  width: 29px;
  height: 29px;
  color: #fff;
  background: var(--pb-green);
  border-radius: 50%;
  font-family: Arial, sans-serif;
  font-size: 7px;
  font-weight: 700;
}

.lg-plusbridge__destination strong {
  align-self: end;
  font-size: 15px;
  line-height: 1.2;
}

.lg-plusbridge__destination small {
  align-self: start;
  margin-top: 4px;
}

.lg-plusbridge__destination--google > span { background: #4f7a9b; }
.lg-plusbridge__destination--web > span { background: #317a66; }
.lg-plusbridge__destination--tiktok > span { background: #555f66; }
.lg-plusbridge__destination--aio > span { background: #8b7a54; }

/* ---------- RECOMMENDED ---------- */
.lg-plusbridge__recommend {
  display: grid;
  grid-template-columns: minmax(245px, 0.65fr) minmax(0, 1.35fr);
  gap: 42px;
  align-items: center;
  margin-top: 28px;
  padding: 39px 40px;
  background: #fff;
  border: 1px solid var(--pb-line);
  border-radius: 28px;
  box-shadow: 0 18px 45px rgba(23, 76, 66, 0.055);
}

.lg-plusbridge__recommend-header p {
  margin-bottom: 10px !important;
  color: #769989 !important;
  font-family: Arial, sans-serif;
  font-size: 8px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.2em;
}

.lg-plusbridge__recommend-header h3 {
  color: var(--pb-deep) !important;
  font-family: "Noto Serif JP", "Yu Mincho", YuMincho, serif;
  font-size: clamp(27px, 3vw, 36px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.015em;
}

.lg-plusbridge__recommend-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  list-style: none;
}

.lg-plusbridge__recommend-list li {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  min-height: 72px;
  padding: 14px 15px !important;
  background: #f6faf8;
  border: 1px solid rgba(31, 111, 92, 0.10) !important;
  border-radius: 15px;
}

.lg-plusbridge__recommend-list li > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  color: #fff;
  background: var(--pb-green);
  border-radius: 50%;
  font-family: Arial, sans-serif;
  font-size: 12px;
  font-weight: 700;
}

.lg-plusbridge__recommend-list strong {
  color: #42534c;
  font-family: "Noto Sans JP", "Yu Gothic", YuGothic, sans-serif;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.65;
}

/* ---------- CTA ---------- */
.lg-plusbridge__cta {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(340px, 0.82fr);
  gap: 45px;
  align-items: center;
  margin-top: 28px;
  padding: 44px 46px;
  overflow: hidden;
  background:
    radial-gradient(circle at 100% 0%, rgba(130, 192, 165, 0.20) 0%, rgba(130, 192, 165, 0) 41%),
    linear-gradient(135deg, #164b41 0%, #1f6f5c 100%);
  border-radius: 28px;
  box-shadow: 0 20px 45px rgba(23, 76, 66, 0.14);
}

.lg-plusbridge__cta::after {
  position: absolute;
  right: -98px;
  bottom: -142px;
  width: 320px;
  height: 320px;
  content: "";
  border: 1px solid rgba(255, 255, 255, 0.10);
  border-radius: 50%;
}

.lg-plusbridge__cta-copy,
.lg-plusbridge__button {
  position: relative;
  z-index: 1;
}

.lg-plusbridge__cta-label {
  margin-bottom: 11px !important;
  color: #b6d5c8 !important;
  font-family: Arial, sans-serif;
  font-size: 8px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.2em;
}

.lg-plusbridge__cta h3 {
  color: #fff !important;
  font-family: "Noto Serif JP", "Yu Mincho", YuMincho, serif;
  font-size: clamp(22px, 2.5vw, 31px);
  font-weight: 700;
  line-height: 1.65;
  letter-spacing: 0.018em;
}

.lg-plusbridge__button {
  display: grid !important;
  grid-template-columns: 38px minmax(0, 1fr) 38px;
  gap: 8px;
  align-items: center;
  width: 100%;
  min-height: 66px;
  padding: 9px 10px !important;
  color: var(--pb-deep) !important;
  background: #fff !important;
  border: 1px solid rgba(255, 255, 255, 0.76) !important;
  border-radius: 999px;
  box-shadow: 0 14px 28px rgba(9, 42, 35, 0.17);
  font-family: "Noto Sans JP", "Yu Gothic", YuGothic, sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  text-decoration: none !important;
  transition: transform 0.22s ease, box-shadow 0.22s ease, background-color 0.22s ease;
}

.lg-plusbridge__button i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  color: #fff;
  background: var(--pb-green);
  border-radius: 50%;
  font-family: Arial, sans-serif;
  font-size: 16px;
  font-style: normal;
}

.lg-plusbridge__button:hover {
  color: var(--pb-deep) !important;
  background: #f4faf7 !important;
  box-shadow: 0 17px 34px rgba(9, 42, 35, 0.21);
  transform: translateY(-2px);
}

.lg-plusbridge__button:focus-visible {
  outline: 3px solid rgba(255, 255, 255, 0.62);
  outline-offset: 4px;
}

@media screen and (prefers-reduced-motion: reduce) {
  .lg-plusbridge__button {
    transition: none;
  }
}

/* ---------- TABLET ---------- */
@media screen and (max-width: 991px) {
  .lg-plusbridge {
    padding: 70px 0 62px !important;
  }

  .lg-plusbridge__hero {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .lg-plusbridge__identity {
    max-width: 660px;
  }

  .lg-plusbridge__title {
    font-size: clamp(36px, 5.8vw, 47px) !important;
  }

  .lg-plusbridge__hero-copy {
    max-width: 720px;
  }

  .lg-plusbridge__story {
    grid-template-columns: minmax(300px, 0.82fr) minmax(0, 1.18fr);
  }

  .lg-plusbridge__story-heading {
    padding: 40px 32px;
  }

  .lg-plusbridge__story-copy {
    padding: 38px 34px;
  }

  .lg-plusbridge__network-map {
    grid-template-columns: minmax(180px, 0.62fr) 66px minmax(0, 1.38fr);
  }

  .lg-plusbridge__recommend {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .lg-plusbridge__cta {
    grid-template-columns: 1fr;
    gap: 27px;
  }

  .lg-plusbridge__button {
    max-width: 470px;
  }
}

/* ---------- MOBILE ---------- */
@media screen and (max-width: 767px) {
  body .p-cb > .p-cb-item:has(.lg-plusbridge) {
    margin-top: -80px !important;
  }

  .lg-plusbridge {
    padding: 70px 0 44px !important;
  }

  .lg-plusbridge__inner {
    width: min(100% - 28px, 620px);
  }

  .lg-plusbridge__hero {
    gap: 22px;
    padding: 22px 0 28px !important;
  }

  .lg-plusbridge__eyebrow {
    margin-bottom: 10px !important;
    font-size: 9px;
  }

  .lg-plusbridge__title {
    margin: 0 !important;
    font-size: clamp(30px, 8.5vw, 36px) !important;
    line-height: 1.4 !important;
    text-align: left !important;
  }

  .lg-plusbridge__title span:last-child {
    padding-left: 0 !important;
    text-align: left !important;
  }

  .lg-plusbridge__meta {
    gap: 7px;
    margin-top: 15px;
    padding: 8px 10px;
    font-size: 6.5px;
    letter-spacing: 0.08em;
  }

  .lg-plusbridge__hero-copy {
    padding: 20px 0 0;
    border-top: 1px solid var(--pb-line);
  }

  .lg-plusbridge__hero-copy::before {
    display: none;
  }

  .lg-plusbridge__hero-label {
    margin-bottom: 9px !important;
    font-size: 7.5px;
  }

  .lg-plusbridge__catch {
    font-size: clamp(24px, 7.2vw, 29px);
    line-height: 1.6;
  }

  .lg-plusbridge__story {
    grid-template-columns: 1fr;
    margin-top: 24px;
    border-radius: 23px;
  }

  .lg-plusbridge__story-heading {
    min-height: 0;
    padding: 37px 25px 39px;
  }

  .lg-plusbridge__story-en {
    margin-bottom: 13px !important;
    font-size: 7px;
  }

  .lg-plusbridge__story-heading h3 {
    font-size: clamp(22px, 6.4vw, 26px);
    line-height: 1.7;
  }

  .lg-plusbridge__story-copy {
    gap: 15px;
    padding: 28px 24px 30px;
  }

  .lg-plusbridge__story-copy p {
    padding-left: 16px !important;
    font-size: 12.5px;
    line-height: 1.9;
  }

  .lg-plusbridge__network {
    margin-top: 20px;
    padding: 27px 18px 20px;
    border-radius: 23px;
  }

  .lg-plusbridge__network-header {
    grid-template-columns: 1fr;
    gap: 10px;
    padding-bottom: 20px;
  }

  .lg-plusbridge__network-en {
    font-size: 6.8px;
  }

  .lg-plusbridge__network-header h3 {
    font-size: 23px;
    line-height: 1.55;
  }

  .lg-plusbridge__network-header > p {
    font-size: 11.5px;
    line-height: 1.75;
    text-align: left;
  }

  .lg-plusbridge__network-map {
    grid-template-columns: 1fr;
    margin-top: 20px;
  }

  .lg-plusbridge__source {
    min-height: 158px;
  }

  .lg-plusbridge__connector {
    height: 53px;
  }

  .lg-plusbridge__connector span {
    top: 0;
    bottom: 0;
    left: 50%;
    width: 1px;
    height: auto;
  }

  .lg-plusbridge__connector b {
    transform: rotate(90deg);
  }

  .lg-plusbridge__destinations {
    gap: 8px;
  }

  .lg-plusbridge__destination {
    grid-template-columns: 26px minmax(0, 1fr);
    column-gap: 8px;
    min-height: 85px;
    padding: 13px 12px;
    border-radius: 15px;
  }

  .lg-plusbridge__destination > span {
    width: 26px;
    height: 26px;
  }

  .lg-plusbridge__destination strong {
    font-size: 13px;
  }

  .lg-plusbridge__destination small {
    font-size: 5.5px;
    letter-spacing: 0.09em;
  }

  .lg-plusbridge__recommend {
    gap: 19px;
    margin-top: 20px;
    padding: 28px 20px 21px;
    border-radius: 23px;
  }

  .lg-plusbridge__recommend-header p {
    margin-bottom: 7px !important;
    font-size: 7px;
  }

  .lg-plusbridge__recommend-header h3 {
    font-size: 27px;
  }

  .lg-plusbridge__recommend-list {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .lg-plusbridge__recommend-list li {
    min-height: 64px;
    padding: 12px 13px !important;
  }

  .lg-plusbridge__recommend-list strong {
    font-size: 11.5px;
  }

  .lg-plusbridge__cta {
    gap: 23px;
    margin-top: 20px;
    padding: 33px 21px 24px;
    border-radius: 23px;
  }

  .lg-plusbridge__cta-label {
    font-size: 7px;
  }

  .lg-plusbridge__cta h3 {
    font-size: 22px;
    line-height: 1.7;
  }

  .lg-plusbridge__button {
    grid-template-columns: 34px minmax(0, 1fr) 34px;
    min-height: 60px;
    font-size: 13px;
  }

  .lg-plusbridge__button i {
    width: 34px;
    height: 34px;
    font-size: 14px;
  }
}

@media screen and (max-width: 374px) {
  .lg-plusbridge__title {
    font-size: 26px !important;
  }

  .lg-plusbridge__meta {
    font-size: 5.8px;
  }

  .lg-plusbridge__destinations {
    grid-template-columns: 1fr;
  }

  .lg-plusbridge__destination {
    min-height: 73px;
  }

  .lg-plusbridge__cta h3 {
    font-size: 20px;
  }
}

/* =========================================================
   Requested final overrides
   既存テーマ内に過去の追記CSSが残っていても、この指定を優先
   ========================================================= */
body .p-cb > .p-cb-item.p-cb-item:has(.lg-plusbridge) {
  margin-top: -100px !important;
  padding-top: 0 !important;
}

.lg-plusbridge.lg-plusbridge {
  padding-top: 70px !important;
}

.lg-plusbridge .lg-plusbridge__hero {
  padding-top: 30px !important;
}

.lg-plusbridge .lg-plusbridge__identity,
.lg-plusbridge .lg-plusbridge__title,
.lg-plusbridge .lg-plusbridge__title span,
.lg-plusbridge .lg-plusbridge__title span:last-child {
  align-items: flex-start;
  padding-left: 0 !important;
  text-align: left !important;
}

.lg-plusbridge .lg-plusbridge__story-number {
  display: none !important;
}

@media screen and (max-width: 767px) {
  body .p-cb > .p-cb-item.p-cb-item:has(.lg-plusbridge) {
    margin-top: -80px !important;
  }

  .lg-plusbridge .lg-plusbridge__hero {
    padding-top: 22px !important;
  }
}

/* =========================================================
   Life & Grow.Partners Plus
   TOP lower sections / full replacement CSS

   Scope:
   「集客だけでは、店舗は続かない。」
   〜「まずは、今の課題を整理しませんか？」

   HTMLは既存の .lgp-range 以下をそのまま使用できます。
   このCSSは、既存テーマの見出し・段落余白より優先されるよう
   すべて .lgp-range 配下にスコープしています。
========================================================= */

/* ---------- Design tokens ---------- */
.lgp-range {
  --lgp-forest: #174c42;
  --lgp-forest-deep: #103d35;
  --lgp-green: #1f6f5c;
  --lgp-green-light: #5f8d79;
  --lgp-text: #24302b;
  --lgp-text-sub: #5b6560;
  --lgp-text-soft: #6f7a74;
  --lgp-white: #ffffff;
  --lgp-mist: #edf6f1;
  --lgp-pale: #f7faf8;
  --lgp-line: #dce8e2;
  --lgp-line-strong: #cbded5;
  --lgp-gold: #c7ad73;

  --lgp-serif: "Times New Roman", Times, "Yu Mincho", YuMincho,
    "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif;
  --lgp-sans: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic",
    YuGothic, sans-serif;
  --lgp-en: Inter, Arial, Helvetica, sans-serif;

  --lgp-container: 1080px;
  --lgp-section-space: 88px;
  --lgp-radius-lg: 24px;
  --lgp-radius-md: 18px;
  --lgp-shadow-card: 0 16px 42px rgba(23, 76, 66, 0.065);
  --lgp-shadow-button: 0 13px 30px rgba(23, 76, 66, 0.2);

  position: relative;
  width: 100%;
  margin: 0;
  overflow: clip;
  color: var(--lgp-text);
  background: var(--lgp-white);
  font-family: var(--lgp-sans);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.9;
  letter-spacing: 0;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.lgp-range,
.lgp-range *,
.lgp-range *::before,
.lgp-range *::after {
  box-sizing: border-box;
}

/* TCD / WordPress theme reset inside this component */
.lgp-range h2,
.lgp-range h3,
.lgp-range p,
.lgp-range ul,
.lgp-range ol,
.lgp-range blockquote,
.lgp-range figure {
  margin: 0;
  padding: 0;
}

.lgp-range h2,
.lgp-range h3 {
  border: 0;
  background: none;
}

.lgp-range ul,
.lgp-range ol {
  list-style: none;
}

.lgp-range a {
  color: inherit;
  text-decoration: none;
}

.lgp-range img,
.lgp-range svg {
  display: block;
  max-width: 100%;
}

.lgp-range .lgp-container {
  position: relative;
  z-index: 2;
  width: min(calc(100% - 48px), var(--lgp-container));
  margin-inline: auto;
}

/* ---------- Shared typography ---------- */
.lgp-range .lgp-kicker {
  display: flex;
  align-items: center;
  gap: 12px;
  width: auto;
  margin: 0 0 15px;
  color: var(--lgp-green);
  font-family: var(--lgp-en);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.lgp-range .lgp-kicker::before {
  content: "";
  flex: 0 0 28px;
  width: 28px;
  height: 1px;
  background: currentColor;
  opacity: 0.7;
}

.lgp-range .lgp-kicker--gold {
  color: var(--lgp-gold);
}

.lgp-range .lgp-heading {
  width: auto;
  margin: 0;
  color: var(--lgp-forest);
  font-family: var(--lgp-serif);
  font-size: clamp(36px, 3.15vw, 44px);
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: 0.03em;
  text-wrap: balance;
}

.lgp-range .lgp-heading--white {
  color: var(--lgp-white);
}

.lgp-range .lgp-body,
.lgp-range .lgp-section-description {
  color: var(--lgp-text-sub);
  font-family: var(--lgp-sans);
  font-size: 15px;
  font-weight: 400;
  line-height: 2.05;
  letter-spacing: 0;
}

.lgp-range .lgp-section-heading {
  width: min(100%, 820px);
  margin: 0 auto 48px;
}

.lgp-range .lgp-section-heading--center {
  text-align: center;
}

.lgp-range .lgp-section-heading--center .lgp-kicker {
  justify-content: center;
}

.lgp-range .lgp-section-heading--center .lgp-section-description {
  margin-inline: auto;
}

.lgp-range .lgp-section-description {
  max-width: 760px;
  margin-top: 20px;
}

/* ---------- Shared buttons / links ---------- */
.lgp-range .lgp-button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 246px;
  min-height: 66px;
  margin: 0;
  padding: 12px 28px;
  overflow: hidden;
  border: 1px solid transparent;
  border-radius: 999px;
  font-family: var(--lgp-sans);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.02em;
  text-align: center;
  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease,
    color 0.25s ease,
    background-color 0.25s ease,
    border-color 0.25s ease;
}

.lgp-range .lgp-button--primary {
  color: var(--lgp-white);
  border-color: var(--lgp-forest);
  background: linear-gradient(135deg, var(--lgp-forest) 0%, var(--lgp-green) 100%);
  box-shadow: var(--lgp-shadow-button);
}

.lgp-range .lgp-button--outline {
  color: var(--lgp-forest);
  border-color: rgba(31, 111, 92, 0.38);
  background: rgba(255, 255, 255, 0.92);
}

.lgp-range .lgp-center-button {
  display: flex;
  justify-content: center;
  margin-top: 42px;
}

.lgp-range .lgp-text-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 8px 0 9px;
  color: var(--lgp-forest);
  border-bottom: 1px solid rgba(23, 76, 66, 0.34);
  font-family: var(--lgp-sans);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.02em;
  transition:
    color 0.25s ease,
    border-color 0.25s ease;
}

.lgp-range .lgp-text-link--light {
  color: var(--lgp-white);
  border-color: rgba(255, 255, 255, 0.38);
}

/* =========================================================
   01. HUMAN & ORGANIZATION
========================================================= */
.lgp-range .lgp-consulting {
  position: relative;
  padding: var(--lgp-section-space) 0;
  background:
    radial-gradient(circle at 8% 10%, rgba(211, 232, 220, 0.38) 0%, rgba(211, 232, 220, 0) 28%),
    var(--lgp-white);
}

.lgp-range .lgp-consulting__grid {
  display: grid;
  grid-template-columns: minmax(0, 550px) minmax(360px, 1fr);
  align-items: center;
  gap: 66px;
}

.lgp-range .lgp-consulting__content {
  min-width: 0;
}

.lgp-range .lgp-consulting__content .lgp-heading {
  margin-bottom: 24px;
}

.lgp-range .lgp-consulting__lead {
  margin: 0 0 21px;
  color: var(--lgp-text);
  font-family: var(--lgp-serif);
  font-size: 21px;
  font-weight: 600;
  line-height: 1.8;
  letter-spacing: 0.035em;
}

.lgp-range .lgp-consulting__content .lgp-body {
  margin-bottom: 26px;
}

.lgp-range .lgp-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 28px;
}

.lgp-range .lgp-tags span {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 7px 13px;
  color: var(--lgp-forest);
  border: 1px solid rgba(31, 111, 92, 0.18);
  border-radius: 999px;
  background: rgba(237, 246, 241, 0.82);
  font-family: var(--lgp-sans);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.02em;
}

.lgp-range .lgp-consulting__visual {
  position: relative;
  width: min(100%, 420px);
  aspect-ratio: 1;
  margin-left: auto;
  isolation: isolate;
}

.lgp-range .lgp-consulting__circle {
  position: absolute;
  top: 50%;
  left: 50%;
  border: 1px solid rgba(31, 111, 92, 0.18);
  border-radius: 50%;
  transform: translate(-50%, -50%);
}

.lgp-range .lgp-consulting__circle--outer {
  width: 100%;
  height: 100%;
  background: radial-gradient(circle, rgba(237, 246, 241, 0.58) 0%, rgba(237, 246, 241, 0) 68%);
}

.lgp-range .lgp-consulting__circle--middle {
  width: 72%;
  height: 72%;
  border-color: rgba(31, 111, 92, 0.25);
}

.lgp-range .lgp-consulting__circle--inner {
  width: 43%;
  height: 43%;
  border-color: rgba(31, 111, 92, 0.34);
  background: rgba(255, 255, 255, 0.86);
  box-shadow: 0 18px 44px rgba(23, 76, 66, 0.08);
}

.lgp-range .lgp-consulting__mark {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 3;
  display: grid;
  place-items: center;
  width: 120px;
  height: 120px;
  color: var(--lgp-forest);
  transform: translate(-50%, -50%);
  font-family: var(--lgp-serif);
  font-size: 21px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.06em;
  text-align: center;
}

.lgp-range .lgp-consulting__node {
  position: absolute;
  z-index: 4;
  display: grid;
  place-items: center;
  width: 104px;
  height: 104px;
  padding: 10px;
  color: var(--lgp-forest);
  border: 1px solid rgba(31, 111, 92, 0.22);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 12px 30px rgba(23, 76, 66, 0.08);
  font-family: var(--lgp-sans);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.55;
  letter-spacing: 0.03em;
  text-align: center;
}

.lgp-range .lgp-consulting__node--01 {
  top: 3%;
  left: 50%;
  transform: translateX(-50%);
}

.lgp-range .lgp-consulting__node--02 {
  right: 0;
  bottom: 13%;
}

.lgp-range .lgp-consulting__node--03 {
  bottom: 13%;
  left: 0;
}

/* =========================================================
   02. SUPPORT MODEL
========================================================= */
.lgp-range .lgp-support {
  position: relative;
  padding: var(--lgp-section-space) 0;
  background: var(--lgp-white);
}

.lgp-range .lgp-support::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--lgp-line), transparent);
}

.lgp-range .lgp-support__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.lgp-range .lgp-support-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 430px;
  margin: 0;
  padding: 30px 28px 31px;
  overflow: hidden;
  border: 1px solid var(--lgp-line);
  border-radius: var(--lgp-radius-lg);
  background: var(--lgp-white);
  box-shadow: var(--lgp-shadow-card);
  transition:
    transform 0.3s ease,
    border-color 0.3s ease,
    box-shadow 0.3s ease;
}

.lgp-range .lgp-support-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 28px;
  width: 56px;
  height: 3px;
  background: linear-gradient(90deg, var(--lgp-green), var(--lgp-green-light));
}

.lgp-range .lgp-support-card__number {
  margin-bottom: 5px;
  color: var(--lgp-green);
  font-family: var(--lgp-en);
  font-size: 34px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.02em;
}

.lgp-range .lgp-support-card__label {
  margin-bottom: 19px;
  color: var(--lgp-green-light);
  font-family: var(--lgp-en);
  font-size: 10px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.lgp-range .lgp-support-card h3 {
  margin: 0 0 14px;
  color: var(--lgp-forest);
  font-family: var(--lgp-serif);
  font-size: 22px;
  font-weight: 600;
  line-height: 1.55;
  letter-spacing: 0.035em;
}

.lgp-range .lgp-support-card__meta {
  display: inline-flex;
  align-self: flex-start;
  margin-bottom: 18px;
  padding: 5px 10px;
  color: var(--lgp-forest);
  border-radius: 5px;
  background: var(--lgp-mist);
  font-family: var(--lgp-sans);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.02em;
}

.lgp-range .lgp-support-card__text {
  margin-bottom: 20px;
  color: var(--lgp-text-sub);
  font-family: var(--lgp-sans);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.95;
}

.lgp-range .lgp-support-card__list {
  display: grid;
  gap: 9px;
  margin-top: auto;
  padding-top: 18px;
  border-top: 1px solid var(--lgp-line);
}

.lgp-range .lgp-support-card__list li {
  position: relative;
  padding-left: 16px;
  color: var(--lgp-text-sub);
  font-family: var(--lgp-sans);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.65;
}

.lgp-range .lgp-support-card__list li::before {
  content: "";
  position: absolute;
  top: 0.72em;
  left: 1px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--lgp-green-light);
}

/* =========================================================
   03. ISSUES WE SOLVE
========================================================= */
.lgp-range .lgp-issues {
  position: relative;
  padding: var(--lgp-section-space) 0;
  background:
    radial-gradient(circle at 100% 0%, rgba(211, 232, 220, 0.52) 0%, rgba(211, 232, 220, 0) 30%),
    var(--lgp-mist);
}

.lgp-range .lgp-issues__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.lgp-range .lgp-issue-card {
  position: relative;
  min-height: 246px;
  margin: 0;
  padding: 27px 28px 28px;
  overflow: hidden;
  border: 1px solid rgba(31, 111, 92, 0.13);
  border-radius: var(--lgp-radius-lg);
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 12px 32px rgba(23, 76, 66, 0.045);
  transition:
    transform 0.3s ease,
    border-color 0.3s ease,
    box-shadow 0.3s ease;
}

.lgp-range .lgp-issue-card::after {
  content: "";
  position: absolute;
  right: -36px;
  bottom: -36px;
  width: 112px;
  height: 112px;
  border: 1px solid rgba(31, 111, 92, 0.09);
  border-radius: 50%;
}

.lgp-range .lgp-issue-card__number {
  display: block;
  margin-bottom: 3px;
  color: var(--lgp-green);
  font-family: var(--lgp-en);
  font-size: 25px;
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: -0.02em;
}

.lgp-range .lgp-issue-card__english {
  display: block;
  margin-bottom: 20px;
  color: var(--lgp-green-light);
  font-family: var(--lgp-en);
  font-size: 10px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.lgp-range .lgp-issue-card h3 {
  margin: 0 0 10px;
  color: var(--lgp-forest);
  font-family: var(--lgp-serif);
  font-size: 21px;
  font-weight: 600;
  line-height: 1.55;
  letter-spacing: 0.035em;
}

.lgp-range .lgp-issue-card p {
  position: relative;
  z-index: 1;
  color: var(--lgp-text-sub);
  font-family: var(--lgp-sans);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.9;
}

/* =========================================================
   04. MESSAGE
========================================================= */
.lgp-range .lgp-message {
  position: relative;
  padding: var(--lgp-section-space) 0;
  overflow: hidden;
  color: var(--lgp-white);
  background:
    radial-gradient(circle at 3% 0%, rgba(77, 139, 116, 0.3) 0%, rgba(77, 139, 116, 0) 38%),
    linear-gradient(135deg, var(--lgp-forest-deep) 0%, var(--lgp-forest) 100%);
}

.lgp-range .lgp-message::after {
  content: "";
  position: absolute;
  inset: 22px;
  pointer-events: none;
  border: 1px solid rgba(255, 255, 255, 0.07);
}

.lgp-range .lgp-message__grid {
  display: grid;
  grid-template-columns: minmax(0, 550px) minmax(360px, 1fr);
  align-items: center;
  gap: 66px;
}

.lgp-range .lgp-message__content {
  min-width: 0;
}

.lgp-range .lgp-message__content .lgp-heading {
  margin-bottom: 28px;
}

.lgp-range .lgp-message__content blockquote {
  position: relative;
  margin: 0 0 25px;
  padding: 1px 0 1px 24px;
  color: var(--lgp-white);
  border-left: 1px solid rgba(199, 173, 115, 0.78);
  font-family: var(--lgp-serif);
  font-size: 21px;
  font-weight: 600;
  line-height: 1.85;
  letter-spacing: 0.035em;
}

.lgp-range .lgp-message__content .lgp-body {
  margin-bottom: 27px;
  color: rgba(255, 255, 255, 0.74);
}

.lgp-range .lgp-message__visual {
  position: relative;
  width: min(100%, 410px);
  aspect-ratio: 1;
  margin-left: auto;
}

.lgp-range .lgp-message__years {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  color: var(--lgp-white);
  transform: translate(-50%, -50%);
  font-family: var(--lgp-en);
  font-size: 116px;
  font-weight: 300;
  line-height: 0.9;
  letter-spacing: -0.06em;
}

.lgp-range .lgp-message__years small {
  margin-top: 21px;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.26em;
}

.lgp-range .lgp-message__orbit {
  position: absolute;
  top: 50%;
  left: 50%;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 50%;
  transform: translate(-50%, -50%);
}

.lgp-range .lgp-message__orbit--01 {
  width: 68%;
  height: 68%;
}

.lgp-range .lgp-message__orbit--02 {
  width: 100%;
  height: 100%;
  border-color: rgba(255, 255, 255, 0.09);
}

.lgp-range .lgp-message__dot {
  position: absolute;
  z-index: 2;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--lgp-gold);
  box-shadow: 0 0 0 7px rgba(199, 173, 115, 0.1);
}

.lgp-range .lgp-message__dot--01 {
  top: 15%;
  right: 17%;
}

.lgp-range .lgp-message__dot--02 {
  bottom: 17%;
  left: 12%;
}

/* =========================================================
   05. FREE CONSULTATION
========================================================= */
.lgp-range .lgp-final-cta {
  position: relative;
  padding: var(--lgp-section-space) 0;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 100%, rgba(220, 237, 229, 0.64) 0%, rgba(220, 237, 229, 0) 48%),
    var(--lgp-pale);
}

.lgp-range .lgp-final-cta__inner {
  position: relative;
  z-index: 2;
  width: min(calc(100% - 48px), var(--lgp-container));
  margin-inline: auto;
  padding: 58px 54px 52px;
  overflow: hidden;
  border: 1px solid rgba(31, 111, 92, 0.14);
  border-radius: 28px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 18px 48px rgba(23, 76, 66, 0.065);
  text-align: center;
}

.lgp-range .lgp-final-cta__inner .lgp-kicker {
  justify-content: center;
}

.lgp-range .lgp-final-cta__inner .lgp-heading {
  margin-bottom: 22px;
}

.lgp-range .lgp-final-cta__lead {
  margin-bottom: 17px;
  color: var(--lgp-text);
  font-family: var(--lgp-serif);
  font-size: 19px;
  font-weight: 600;
  line-height: 1.85;
  letter-spacing: 0.025em;
}

.lgp-range .lgp-final-cta__text {
  max-width: 760px;
  margin-inline: auto;
  color: var(--lgp-text-sub);
  font-family: var(--lgp-sans);
  font-size: 14px;
  font-weight: 400;
  line-height: 2;
}

.lgp-range .lgp-final-cta__buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  margin-top: 31px;
}

.lgp-range .lgp-final-cta__note {
  margin-top: 18px;
  color: var(--lgp-text-soft);
  font-family: var(--lgp-sans);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: 0.02em;
}

.lgp-range .lgp-final-cta__decoration {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

.lgp-range .lgp-final-cta__ring {
  position: absolute;
  border: 1px solid rgba(31, 111, 92, 0.11);
  border-radius: 50%;
}

.lgp-range .lgp-final-cta__ring--01 {
  top: -130px;
  left: -90px;
  width: 360px;
  height: 360px;
}

.lgp-range .lgp-final-cta__ring--02 {
  right: -120px;
  bottom: -150px;
  width: 420px;
  height: 420px;
}

.lgp-range .lgp-final-cta__line {
  position: absolute;
  width: 170px;
  height: 1px;
  background: rgba(31, 111, 92, 0.16);
}

.lgp-range .lgp-final-cta__line--01 {
  top: 23%;
  right: 5%;
  transform: rotate(-34deg);
}

.lgp-range .lgp-final-cta__line--02 {
  bottom: 18%;
  left: 4%;
  transform: rotate(30deg);
}

/* ---------- Interaction ---------- */
@media (hover: hover) and (pointer: fine) {
  .lgp-range .lgp-button:hover {
    transform: translateY(-2px);
  }

  .lgp-range .lgp-button--primary:hover {
    box-shadow: 0 17px 36px rgba(23, 76, 66, 0.25);
  }

  .lgp-range .lgp-button--outline:hover {
    color: var(--lgp-white);
    border-color: var(--lgp-forest);
    background: var(--lgp-forest);
  }

  .lgp-range .lgp-text-link:hover {
    color: var(--lgp-green);
    border-color: var(--lgp-green);
  }

  .lgp-range .lgp-text-link--light:hover {
    color: var(--lgp-gold);
    border-color: var(--lgp-gold);
  }

  .lgp-range .lgp-support-card:hover,
  .lgp-range .lgp-issue-card:hover {
    transform: translateY(-4px);
    border-color: var(--lgp-line-strong);
    box-shadow: 0 20px 48px rgba(23, 76, 66, 0.09);
  }
}

.lgp-range .lgp-button:focus-visible,
.lgp-range .lgp-text-link:focus-visible {
  outline: 3px solid rgba(31, 111, 92, 0.28);
  outline-offset: 4px;
}

/* ---------- Utility ---------- */
.lgp-range .lgp-mobile-only {
  display: none;
}

.lgp-range .lgp-pc-only {
  display: initial;
}

/* =========================================================
   Tablet
========================================================= */
@media (max-width: 1024px) {
  .lgp-range {
    --lgp-section-space: 76px;
  }

  .lgp-range .lgp-container,
  .lgp-range .lgp-final-cta__inner {
    width: min(calc(100% - 64px), var(--lgp-container));
  }

  .lgp-range .lgp-heading {
    font-size: clamp(34px, 4.2vw, 40px);
  }

  .lgp-range .lgp-consulting__grid,
  .lgp-range .lgp-message__grid {
    grid-template-columns: minmax(0, 1.18fr) minmax(310px, 0.82fr);
    gap: 42px;
  }

  .lgp-range .lgp-consulting__visual,
  .lgp-range .lgp-message__visual {
    width: min(100%, 360px);
  }

  .lgp-range .lgp-consulting__node {
    width: 90px;
    height: 90px;
    font-size: 11px;
  }

  .lgp-range .lgp-support-card {
    min-height: 440px;
    padding-inline: 24px;
  }

  .lgp-range .lgp-issue-card {
    padding-inline: 24px;
  }

  .lgp-range .lgp-message__years {
    font-size: 96px;
  }
}

/* =========================================================
   Small tablet
========================================================= */
@media (max-width: 860px) {
  .lgp-range .lgp-consulting__grid,
  .lgp-range .lgp-message__grid {
    grid-template-columns: 1fr;
    gap: 46px;
  }

  .lgp-range .lgp-consulting__visual,
  .lgp-range .lgp-message__visual {
    width: min(100%, 390px);
    margin-inline: auto;
  }

  .lgp-range .lgp-support__grid,
  .lgp-range .lgp-issues__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .lgp-range .lgp-support-card {
    min-height: 0;
  }

  .lgp-range .lgp-message__content {
    text-align: center;
  }

  .lgp-range .lgp-message__content .lgp-kicker {
    justify-content: center;
  }

  .lgp-range .lgp-message__content blockquote {
    display: inline-block;
    text-align: left;
  }
}

/* =========================================================
   Mobile
========================================================= */
@media (max-width: 767px) {
  .lgp-range {
    --lgp-section-space: 62px;
    overflow: hidden;
    font-size: 15px;
  }

  .lgp-range .lgp-container,
  .lgp-range .lgp-final-cta__inner {
    width: calc(100% - 40px);
  }

  .lgp-range .lgp-kicker {
    gap: 10px;
    margin-bottom: 12px;
    font-size: 10px;
    letter-spacing: 0.2em;
  }

  .lgp-range .lgp-kicker::before {
    flex-basis: 22px;
    width: 22px;
  }

  .lgp-range .lgp-heading {
    font-size: 30px;
    line-height: 1.52;
    letter-spacing: 0.025em;
  }

  .lgp-range .lgp-body,
  .lgp-range .lgp-section-description {
    font-size: 14px;
    line-height: 2;
  }

  .lgp-range .lgp-section-heading {
    margin-bottom: 34px;
  }

  .lgp-range .lgp-section-description {
    margin-top: 15px;
  }

  .lgp-range .lgp-section-heading--center {
    text-align: left;
  }

  .lgp-range .lgp-section-heading--center .lgp-kicker {
    justify-content: flex-start;
  }

  .lgp-range .lgp-button {
    width: 100%;
    min-width: 0;
    min-height: 60px;
    padding-inline: 22px;
    font-size: 13px;
  }

  .lgp-range .lgp-center-button {
    margin-top: 32px;
  }

  .lgp-range .lgp-consulting__grid,
  .lgp-range .lgp-message__grid {
    gap: 38px;
  }

  .lgp-range .lgp-consulting__content .lgp-heading,
  .lgp-range .lgp-message__content .lgp-heading {
    margin-bottom: 19px;
  }

  .lgp-range .lgp-consulting__lead {
    margin-bottom: 16px;
    font-size: 18px;
    line-height: 1.85;
  }

  .lgp-range .lgp-tags {
    gap: 7px;
    margin-top: 22px;
  }

  .lgp-range .lgp-tags span {
    min-height: 31px;
    padding: 6px 10px;
    font-size: 11px;
  }

  .lgp-range .lgp-consulting__visual {
    width: min(100%, 330px);
  }

  .lgp-range .lgp-consulting__node {
    width: 78px;
    height: 78px;
    padding: 7px;
    font-size: 10px;
  }

  .lgp-range .lgp-consulting__mark {
    width: 100px;
    height: 100px;
    font-size: 17px;
  }

  .lgp-range .lgp-support__grid,
  .lgp-range .lgp-issues__grid {
    grid-template-columns: 1fr;
    gap: 13px;
  }

  .lgp-range .lgp-support-card {
    min-height: 0;
    padding: 27px 23px 25px;
    border-radius: 19px;
  }

  .lgp-range .lgp-support-card::before {
    left: 23px;
  }

  .lgp-range .lgp-support-card__number {
    font-size: 30px;
  }

  .lgp-range .lgp-support-card__label {
    margin-bottom: 15px;
  }

  .lgp-range .lgp-support-card h3 {
    font-size: 20px;
  }

  .lgp-range .lgp-support-card__text {
    font-size: 13px;
  }

  .lgp-range .lgp-issue-card {
    min-height: 0;
    padding: 24px 23px 25px;
    border-radius: 19px;
  }

  .lgp-range .lgp-issue-card__english {
    margin-bottom: 14px;
  }

  .lgp-range .lgp-issue-card h3 {
    font-size: 20px;
  }

  .lgp-range .lgp-message::after {
    inset: 12px;
  }

  .lgp-range .lgp-message__content {
    text-align: left;
  }

  .lgp-range .lgp-message__content .lgp-kicker {
    justify-content: flex-start;
  }

  .lgp-range .lgp-message__content blockquote {
    margin-bottom: 21px;
    padding-left: 18px;
    font-size: 18px;
    line-height: 1.85;
  }

  .lgp-range .lgp-message__visual {
    width: min(100%, 300px);
  }

  .lgp-range .lgp-message__years {
    font-size: 80px;
  }

  .lgp-range .lgp-final-cta__inner {
    padding: 42px 22px 36px;
    border-radius: 22px;
  }

  .lgp-range .lgp-final-cta__inner .lgp-heading {
    margin-bottom: 17px;
  }

  .lgp-range .lgp-final-cta__lead {
    margin-bottom: 13px;
    font-size: 17px;
    line-height: 1.8;
  }

  .lgp-range .lgp-final-cta__text {
    font-size: 13px;
    line-height: 1.95;
  }

  .lgp-range .lgp-final-cta__buttons {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    margin-top: 25px;
  }

  .lgp-range .lgp-final-cta__note {
    font-size: 10px;
  }

  .lgp-range .lgp-final-cta__ring--01 {
    top: -110px;
    left: -160px;
  }

  .lgp-range .lgp-final-cta__ring--02 {
    right: -200px;
    bottom: -180px;
  }

  .lgp-range .lgp-mobile-only {
    display: initial;
  }

  .lgp-range .lgp-pc-only {
    display: none;
  }
}

/* ---------- Narrow mobile ---------- */
@media (max-width: 390px) {
  .lgp-range .lgp-container,
  .lgp-range .lgp-final-cta__inner {
    width: calc(100% - 32px);
  }

  .lgp-range .lgp-heading {
    font-size: 28px;
  }

  .lgp-range .lgp-consulting__visual {
    width: 290px;
  }

  .lgp-range .lgp-consulting__node {
    width: 70px;
    height: 70px;
    font-size: 9px;
  }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  .lgp-range *,
  .lgp-range *::before,
  .lgp-range *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* =========================================================
   PROFESSIONAL REDESIGN / FINAL OVERRIDES

   対象：
   01「集客だけでは、店舗は続かない。」
   04「19年の実践知を、店舗の現場へ。」

   TCDテーマや過去の追記CSSより確実に優先するため、
   このブロックは必ずファイルの末尾に置いてください。
========================================================= */

/* ---------------------------------------------------------
   01. HUMAN & ORGANIZATION / Editorial light section
--------------------------------------------------------- */
body .lgp-range .lgp-consulting {
  position: relative;
  isolation: isolate;
  padding: 108px 0 112px !important;
  overflow: hidden;
  background:
    radial-gradient(circle at 2% 4%, rgba(197, 225, 211, 0.5) 0%, rgba(197, 225, 211, 0.12) 22%, rgba(197, 225, 211, 0) 43%),
    radial-gradient(circle at 94% 88%, rgba(230, 240, 234, 0.75) 0%, rgba(230, 240, 234, 0) 31%),
    linear-gradient(180deg, #ffffff 0%, #f8fbf9 100%) !important;
}

body .lgp-range .lgp-consulting::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: -205px;
  left: -155px;
  width: 510px;
  height: 510px;
  border: 1px solid rgba(31, 111, 92, 0.08);
  border-radius: 50%;
  box-shadow:
    0 0 0 70px rgba(31, 111, 92, 0.025),
    0 0 0 140px rgba(31, 111, 92, 0.016);
  pointer-events: none;
}

body .lgp-range .lgp-consulting::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, rgba(31, 111, 92, 0.17) 22%, rgba(31, 111, 92, 0.17) 78%, transparent 100%);
  pointer-events: none;
}

body .lgp-range .lgp-consulting .lgp-consulting__grid {
  display: grid !important;
  grid-template-columns: minmax(390px, 0.82fr) minmax(0, 1.18fr) !important;
  grid-template-areas: "visual content";
  align-items: center !important;
  gap: 78px !important;
  min-height: 570px;
}

body .lgp-range .lgp-consulting .lgp-consulting__visual {
  grid-area: visual;
  position: relative;
  isolation: isolate;
  display: grid !important;
  place-items: center;
  width: 100% !important;
  max-width: 430px !important;
  min-height: 520px;
  aspect-ratio: auto !important;
  margin: 0 !important;
  overflow: hidden;
  border: 1px solid rgba(31, 111, 92, 0.14);
  border-radius: 32px;
  background:
    linear-gradient(rgba(255, 255, 255, 0.44), rgba(255, 255, 255, 0.44)),
    radial-gradient(circle at 50% 48%, rgba(205, 231, 218, 0.96) 0%, rgba(237, 246, 241, 0.94) 38%, rgba(255, 255, 255, 0.98) 73%);
  box-shadow:
    0 28px 70px rgba(23, 76, 66, 0.09),
    inset 0 1px 0 rgba(255, 255, 255, 0.92);
}

body .lgp-range .lgp-consulting .lgp-consulting__visual::before {
  content: "";
  position: absolute;
  inset: 17px;
  z-index: -1;
  border: 1px solid rgba(31, 111, 92, 0.08);
  border-radius: 23px;
  pointer-events: none;
}

body .lgp-range .lgp-consulting .lgp-consulting__visual::after {
  content: "HUMAN  ×  SYSTEM";
  position: absolute;
  right: 28px;
  bottom: 22px;
  color: rgba(23, 76, 66, 0.48);
  font-family: var(--lgp-en);
  font-size: 9px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.22em;
  white-space: nowrap;
}

body .lgp-range .lgp-consulting .lgp-consulting__visual > p:empty {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

body .lgp-range .lgp-consulting .lgp-consulting__circle {
  position: absolute !important;
  top: 48% !important;
  left: 50% !important;
  display: block !important;
  margin: 0 !important;
  border-radius: 50% !important;
  transform: translate(-50%, -50%) !important;
}

body .lgp-range .lgp-consulting .lgp-consulting__circle--outer {
  width: 356px !important;
  height: 356px !important;
  border: 1px dashed rgba(31, 111, 92, 0.24) !important;
  background: transparent !important;
}

body .lgp-range .lgp-consulting .lgp-consulting__circle--middle {
  width: 250px !important;
  height: 250px !important;
  border: 1px solid rgba(31, 111, 92, 0.2) !important;
  background: rgba(255, 255, 255, 0.2) !important;
  box-shadow: 0 0 0 28px rgba(255, 255, 255, 0.16);
}

body .lgp-range .lgp-consulting .lgp-consulting__circle--inner {
  width: 148px !important;
  height: 148px !important;
  border: 1px solid rgba(31, 111, 92, 0.25) !important;
  background: rgba(255, 255, 255, 0.72) !important;
  box-shadow: 0 20px 50px rgba(23, 76, 66, 0.08) !important;
}

body .lgp-range .lgp-consulting .lgp-consulting__mark {
  position: absolute !important;
  top: 48% !important;
  left: 50% !important;
  z-index: 5 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 16px !important;
  width: 218px !important;
  height: 86px !important;
  margin: 0 !important;
  padding: 0 22px !important;
  color: var(--lgp-forest) !important;
  border: 1px solid rgba(31, 111, 92, 0.17);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.9) !important;
  box-shadow: 0 18px 42px rgba(23, 76, 66, 0.11);
  transform: translate(-50%, -50%) !important;
  font-family: var(--lgp-serif) !important;
  font-size: 25px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  letter-spacing: 0.055em !important;
  white-space: nowrap;
}

body .lgp-range .lgp-consulting .lgp-consulting__mark span {
  font: inherit !important;
  color: inherit !important;
}

body .lgp-range .lgp-consulting .lgp-consulting__node {
  position: absolute !important;
  z-index: 6 !important;
  display: block !important;
  width: 12px !important;
  height: 12px !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 3px solid rgba(255, 255, 255, 0.96) !important;
  border-radius: 50% !important;
  background: var(--lgp-green) !important;
  box-shadow:
    0 0 0 1px rgba(31, 111, 92, 0.42),
    0 0 0 8px rgba(31, 111, 92, 0.07) !important;
}

body .lgp-range .lgp-consulting .lgp-consulting__node--01 {
  top: 15% !important;
  left: 51% !important;
  right: auto !important;
  bottom: auto !important;
  transform: translateX(-50%) !important;
}

body .lgp-range .lgp-consulting .lgp-consulting__node--02 {
  top: auto !important;
  right: 13% !important;
  bottom: 22% !important;
  left: auto !important;
  background: #aa8a54 !important;
  box-shadow:
    0 0 0 1px rgba(170, 138, 84, 0.48),
    0 0 0 8px rgba(170, 138, 84, 0.08) !important;
  transform: none !important;
}

body .lgp-range .lgp-consulting .lgp-consulting__node--03 {
  top: auto !important;
  right: auto !important;
  bottom: 22% !important;
  left: 13% !important;
  transform: none !important;
}

body .lgp-range .lgp-consulting .lgp-consulting__content {
  grid-area: content;
  position: relative;
  min-width: 0;
  padding: 8px 0 8px 4px !important;
}

body .lgp-range .lgp-consulting .lgp-consulting__content::before {
  content: "";
  position: absolute;
  top: 8%;
  bottom: 8%;
  left: -40px;
  width: 1px;
  background: linear-gradient(180deg, transparent 0%, rgba(31, 111, 92, 0.24) 22%, rgba(31, 111, 92, 0.24) 78%, transparent 100%);
}

body .lgp-range .lgp-consulting .lgp-kicker {
  width: auto !important;
  height: auto !important;
  margin: 0 0 19px !important;
  padding: 0 !important;
  color: var(--lgp-green) !important;
  font-family: var(--lgp-en) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  letter-spacing: 0.23em !important;
}

body .lgp-range .lgp-consulting .lgp-heading {
  width: auto !important;
  height: auto !important;
  margin: 0 0 28px !important;
  padding: 0 !important;
  color: var(--lgp-forest) !important;
  font-family: var(--lgp-serif) !important;
  font-size: clamp(40px, 3.55vw, 49px) !important;
  font-weight: 600 !important;
  line-height: 1.46 !important;
  letter-spacing: 0.028em !important;
  text-align: left !important;
}

body .lgp-range .lgp-consulting .lgp-consulting__lead {
  margin: 0 0 25px !important;
  padding: 19px 23px 20px !important;
  color: var(--lgp-forest) !important;
  border-left: 3px solid var(--lgp-green) !important;
  border-radius: 0 14px 14px 0;
  background: linear-gradient(90deg, rgba(237, 246, 241, 0.92) 0%, rgba(247, 250, 248, 0.62) 100%);
  font-family: var(--lgp-serif) !important;
  font-size: 20px !important;
  font-weight: 600 !important;
  line-height: 1.85 !important;
  letter-spacing: 0.028em !important;
}

body .lgp-range .lgp-consulting .lgp-body {
  margin: 0 0 13px !important;
  padding: 0 !important;
  color: #5e6b65 !important;
  font-family: var(--lgp-sans) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 2.02 !important;
  letter-spacing: 0 !important;
}

body .lgp-range .lgp-consulting .lgp-tags {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  width: 100% !important;
  height: auto !important;
  margin: 27px 0 0 !important;
  padding: 0 !important;
}

body .lgp-range .lgp-consulting .lgp-tags span {
  position: relative;
  display: inline-flex !important;
  align-items: center !important;
  width: auto !important;
  height: auto !important;
  min-height: 36px !important;
  margin: 0 !important;
  padding: 8px 13px 8px 25px !important;
  color: #527766 !important;
  border: 1px solid rgba(31, 111, 92, 0.15) !important;
  border-radius: 999px !important;
  background: rgba(255, 255, 255, 0.88) !important;
  box-shadow: 0 7px 18px rgba(23, 76, 66, 0.035);
  font-family: var(--lgp-sans) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  letter-spacing: 0.015em !important;
}

body .lgp-range .lgp-consulting .lgp-tags span::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 13px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--lgp-green-light);
  transform: translateY(-50%);
}

/* ---------------------------------------------------------
   04. MESSAGE / Premium dark editorial section
--------------------------------------------------------- */
body .lgp-range .lgp-message {
  position: relative;
  isolation: isolate;
  padding: 110px 0 112px !important;
  overflow: hidden;
  color: var(--lgp-white) !important;
  background:
    radial-gradient(circle at 9% 0%, rgba(87, 157, 131, 0.32) 0%, rgba(87, 157, 131, 0) 37%),
    radial-gradient(circle at 91% 100%, rgba(199, 173, 115, 0.09) 0%, rgba(199, 173, 115, 0) 30%),
    linear-gradient(132deg, #0d352f 0%, #164b41 48%, #103d35 100%) !important;
}

body .lgp-range .lgp-message::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  opacity: 0.34;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.025) 1px, transparent 1px);
  background-size: 76px 76px;
  pointer-events: none;
}

body .lgp-range .lgp-message::after {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 24px;
  border: 1px solid rgba(255, 255, 255, 0.075);
  pointer-events: none;
}

body .lgp-range .lgp-message .lgp-message__grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1.18fr) minmax(350px, 0.82fr) !important;
  grid-template-areas: "content visual";
  align-items: center !important;
  gap: 74px !important;
  min-height: 590px;
}

body .lgp-range .lgp-message .lgp-message__content {
  grid-area: content;
  position: relative;
  z-index: 3;
  min-width: 0;
  padding: 8px 0 !important;
  text-align: left !important;
}

body .lgp-range .lgp-message .lgp-kicker {
  justify-content: flex-start !important;
  width: auto !important;
  height: auto !important;
  margin: 0 0 19px !important;
  padding: 0 !important;
  color: #d0b77c !important;
  font-family: var(--lgp-en) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  letter-spacing: 0.24em !important;
}

body .lgp-range .lgp-message .lgp-heading {
  width: auto !important;
  height: auto !important;
  margin: 0 0 30px !important;
  padding: 0 !important;
  color: #ffffff !important;
  font-family: var(--lgp-serif) !important;
  font-size: clamp(40px, 3.55vw, 49px) !important;
  font-weight: 600 !important;
  line-height: 1.46 !important;
  letter-spacing: 0.028em !important;
  text-align: left !important;
}

body .lgp-range .lgp-message .lgp-message__content blockquote {
  position: relative;
  display: block !important;
  width: 100% !important;
  height: auto !important;
  margin: 0 0 27px !important;
  padding: 27px 31px 28px !important;
  overflow: hidden;
  color: #ffffff !important;
  border: 1px solid rgba(255, 255, 255, 0.11) !important;
  border-left: 3px solid #c7ad73 !important;
  border-radius: 0 18px 18px 0 !important;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.085) 0%, rgba(255, 255, 255, 0.035) 100%) !important;
  box-shadow: 0 18px 45px rgba(5, 30, 25, 0.13);
  font-family: var(--lgp-serif) !important;
  font-size: 22px !important;
  font-weight: 600 !important;
  line-height: 1.86 !important;
  letter-spacing: 0.035em !important;
  text-align: left !important;
}

body .lgp-range .lgp-message .lgp-message__content blockquote::after {
  content: "“";
  position: absolute;
  top: -29px;
  right: 17px;
  color: rgba(255, 255, 255, 0.055);
  font-family: Georgia, serif;
  font-size: 122px;
  font-weight: 400;
  line-height: 1;
}

body .lgp-range .lgp-message .lgp-message__content blockquote p {
  position: relative;
  z-index: 1;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  color: inherit !important;
  background: transparent !important;
  font: inherit !important;
  line-height: inherit !important;
  letter-spacing: inherit !important;
}

body .lgp-range .lgp-message .lgp-message__content > p:not(.lgp-kicker) {
  width: auto !important;
  height: auto !important;
  margin: 0 0 12px !important;
  padding: 0 !important;
  color: rgba(226, 238, 232, 0.78) !important;
  background: transparent !important;
  font-family: var(--lgp-sans) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 2 !important;
  letter-spacing: 0 !important;
}

body .lgp-range .lgp-message .lgp-message__content > p:has(.lgp-text-link) {
  margin: 0 !important;
}

body .lgp-range .lgp-message .lgp-text-link {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 13px !important;
  width: auto !important;
  height: auto !important;
  margin: 24px 0 0 !important;
  padding: 7px 0 10px !important;
  color: #ffffff !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.38) !important;
  background: transparent !important;
  font-family: var(--lgp-sans) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.5 !important;
  letter-spacing: 0.025em !important;
}

body .lgp-range .lgp-message .lgp-text-link span {
  width: auto !important;
  height: auto !important;
  color: inherit !important;
  font: inherit !important;
}

body .lgp-range .lgp-message .lgp-message__visual {
  grid-area: visual;
  position: relative;
  isolation: isolate;
  display: grid !important;
  place-items: center;
  width: 100% !important;
  max-width: 420px !important;
  min-height: 500px;
  aspect-ratio: auto !important;
  margin: 0 0 0 auto !important;
  background: radial-gradient(circle, rgba(91, 154, 130, 0.24) 0%, rgba(91, 154, 130, 0.08) 38%, rgba(91, 154, 130, 0) 70%) !important;
}

body .lgp-range .lgp-message .lgp-message__visual::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 390px;
  height: 390px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 50%;
  box-shadow:
    0 0 0 28px rgba(255, 255, 255, 0.018),
    0 0 0 56px rgba(255, 255, 255, 0.012);
  transform: translate(-50%, -50%);
}

body .lgp-range .lgp-message .lgp-message__visual::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1px;
  height: 440px;
  background: linear-gradient(180deg, transparent 0%, rgba(199, 173, 115, 0.28) 24%, rgba(199, 173, 115, 0.28) 76%, transparent 100%);
  transform: translate(-50%, -50%) rotate(36deg);
}

body .lgp-range .lgp-message .lgp-message__visual > p:empty {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

body .lgp-range .lgp-message .lgp-message__years {
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  z-index: 5 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #ffffff !important;
  background: transparent !important;
  transform: translate(-50%, -50%) !important;
  font-family: var(--lgp-en) !important;
  font-size: 150px !important;
  font-weight: 300 !important;
  line-height: 0.78 !important;
  letter-spacing: -0.07em !important;
  text-align: center !important;
  text-shadow: 0 20px 50px rgba(4, 27, 22, 0.2);
  white-space: nowrap;
}

body .lgp-range .lgp-message .lgp-message__years span,
body .lgp-range .lgp-message .lgp-message__years small {
  display: block !important;
  width: auto !important;
  height: auto !important;
  margin: 30px 0 0 !important;
  color: #c2dacd !important;
  font-family: var(--lgp-en) !important;
  font-size: 9px !important;
  font-weight: 700 !important;
  line-height: 1.55 !important;
  letter-spacing: 0.3em !important;
  text-align: center !important;
  white-space: normal !important;
}

body .lgp-range .lgp-message .lgp-message__orbit {
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  display: block !important;
  margin: 0 !important;
  border-radius: 50% !important;
  background: transparent !important;
  transform: translate(-50%, -50%) !important;
}

body .lgp-range .lgp-message .lgp-message__orbit--01 {
  width: 350px !important;
  height: 350px !important;
  border: 1px solid rgba(255, 255, 255, 0.16) !important;
}

body .lgp-range .lgp-message .lgp-message__orbit--02 {
  width: 245px !important;
  height: 245px !important;
  border: 1px solid rgba(199, 173, 115, 0.24) !important;
}

body .lgp-range .lgp-message .lgp-message__dot {
  position: absolute !important;
  z-index: 6 !important;
  display: block !important;
  width: 10px !important;
  height: 10px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 2px solid rgba(255, 255, 255, 0.72) !important;
  border-radius: 50% !important;
  background: #d7bc83 !important;
  box-shadow:
    0 0 0 7px rgba(215, 188, 131, 0.09),
    0 0 24px rgba(215, 188, 131, 0.25) !important;
}

body .lgp-range .lgp-message .lgp-message__dot--01 {
  top: 16% !important;
  right: 15% !important;
  bottom: auto !important;
  left: auto !important;
}

body .lgp-range .lgp-message .lgp-message__dot--02 {
  top: auto !important;
  right: auto !important;
  bottom: 17% !important;
  left: 13% !important;
}

/* ---------------------------------------------------------
   Hover refinements
--------------------------------------------------------- */
@media (hover: hover) and (pointer: fine) {
  body .lgp-range .lgp-consulting .lgp-consulting__visual {
    transition:
      transform 0.35s ease,
      box-shadow 0.35s ease;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__visual:hover {
    transform: translateY(-4px);
    box-shadow:
      0 34px 80px rgba(23, 76, 66, 0.12),
      inset 0 1px 0 rgba(255, 255, 255, 0.94);
  }

  body .lgp-range .lgp-message .lgp-text-link:hover {
    color: #d7bc83 !important;
    border-color: #d7bc83 !important;
  }
}

/* ---------------------------------------------------------
   Tablet
--------------------------------------------------------- */
@media (max-width: 1024px) {
  body .lgp-range .lgp-consulting,
  body .lgp-range .lgp-message {
    padding: 92px 0 96px !important;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__grid {
    grid-template-columns: minmax(340px, 0.8fr) minmax(0, 1.2fr) !important;
    gap: 54px !important;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__visual {
    max-width: 390px !important;
    min-height: 480px;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__content::before {
    left: -28px;
  }

  body .lgp-range .lgp-consulting .lgp-heading,
  body .lgp-range .lgp-message .lgp-heading {
    font-size: clamp(36px, 4.1vw, 43px) !important;
  }

  body .lgp-range .lgp-message .lgp-message__grid {
    grid-template-columns: minmax(0, 1.16fr) minmax(320px, 0.84fr) !important;
    gap: 48px !important;
  }

  body .lgp-range .lgp-message .lgp-message__visual {
    max-width: 370px !important;
    min-height: 450px;
  }

  body .lgp-range .lgp-message .lgp-message__years {
    font-size: 130px !important;
  }
}

/* ---------------------------------------------------------
   Small tablet / stacked layout
--------------------------------------------------------- */
@media (max-width: 860px) {
  body .lgp-range .lgp-consulting .lgp-consulting__grid,
  body .lgp-range .lgp-message .lgp-message__grid {
    grid-template-columns: 1fr !important;
    grid-template-areas:
      "content"
      "visual";
    gap: 58px !important;
    min-height: 0;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__content,
  body .lgp-range .lgp-message .lgp-message__content {
    width: min(100%, 700px);
    margin-inline: auto !important;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__content::before {
    display: none;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__visual,
  body .lgp-range .lgp-message .lgp-message__visual {
    margin-inline: auto !important;
  }
}

/* ---------------------------------------------------------
   Mobile
--------------------------------------------------------- */
@media (max-width: 767px) {
  body .lgp-range .lgp-consulting,
  body .lgp-range .lgp-message {
    padding: 72px 0 76px !important;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__grid,
  body .lgp-range .lgp-message .lgp-message__grid {
    gap: 43px !important;
  }

  body .lgp-range .lgp-consulting .lgp-kicker,
  body .lgp-range .lgp-message .lgp-kicker {
    margin-bottom: 14px !important;
    font-size: 9px !important;
  }

  body .lgp-range .lgp-consulting .lgp-heading,
  body .lgp-range .lgp-message .lgp-heading {
    margin-bottom: 21px !important;
    font-size: 31px !important;
    line-height: 1.52 !important;
    letter-spacing: 0.022em !important;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__lead {
    margin-bottom: 20px !important;
    padding: 17px 17px 18px !important;
    border-radius: 0 12px 12px 0;
    font-size: 17px !important;
    line-height: 1.82 !important;
  }

  body .lgp-range .lgp-consulting .lgp-body,
  body .lgp-range .lgp-message .lgp-message__content > p:not(.lgp-kicker) {
    font-size: 13px !important;
    line-height: 1.95 !important;
  }

  body .lgp-range .lgp-consulting .lgp-tags {
    gap: 7px !important;
    margin-top: 22px !important;
  }

  body .lgp-range .lgp-consulting .lgp-tags span {
    min-height: 33px !important;
    padding: 7px 10px 7px 21px !important;
    font-size: 10px !important;
  }

  body .lgp-range .lgp-consulting .lgp-tags span::before {
    left: 10px;
    width: 4px;
    height: 4px;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__visual {
    width: min(100%, 330px) !important;
    min-height: 390px;
    border-radius: 25px;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__visual::before {
    inset: 11px;
    border-radius: 18px;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__visual::after {
    right: 18px;
    bottom: 16px;
    font-size: 7px;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__circle--outer {
    width: 280px !important;
    height: 280px !important;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__circle--middle {
    width: 200px !important;
    height: 200px !important;
    box-shadow: 0 0 0 20px rgba(255, 255, 255, 0.15);
  }

  body .lgp-range .lgp-consulting .lgp-consulting__circle--inner {
    width: 120px !important;
    height: 120px !important;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__mark {
    width: 178px !important;
    height: 70px !important;
    gap: 11px !important;
    padding-inline: 17px !important;
    font-size: 20px !important;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__node--01 {
    top: 13% !important;
  }

  body .lgp-range .lgp-message::after {
    inset: 11px;
  }

  body .lgp-range .lgp-message .lgp-message__content blockquote {
    margin-bottom: 23px !important;
    padding: 22px 19px 23px !important;
    border-radius: 0 14px 14px 0 !important;
    font-size: 18px !important;
    line-height: 1.82 !important;
  }

  body .lgp-range .lgp-message .lgp-text-link {
    margin-top: 19px !important;
    font-size: 12px !important;
  }

  body .lgp-range .lgp-message .lgp-message__visual {
    width: min(100%, 300px) !important;
    min-height: 340px;
  }

  body .lgp-range .lgp-message .lgp-message__visual::before {
    width: 286px;
    height: 286px;
    box-shadow:
      0 0 0 20px rgba(255, 255, 255, 0.016),
      0 0 0 40px rgba(255, 255, 255, 0.01);
  }

  body .lgp-range .lgp-message .lgp-message__visual::after {
    height: 320px;
  }

  body .lgp-range .lgp-message .lgp-message__years {
    font-size: 106px !important;
  }

  body .lgp-range .lgp-message .lgp-message__years span,
  body .lgp-range .lgp-message .lgp-message__years small {
    margin-top: 23px !important;
    font-size: 7px !important;
  }

  body .lgp-range .lgp-message .lgp-message__orbit--01 {
    width: 265px !important;
    height: 265px !important;
  }

  body .lgp-range .lgp-message .lgp-message__orbit--02 {
    width: 185px !important;
    height: 185px !important;
  }
}

@media (max-width: 390px) {
  body .lgp-range .lgp-consulting .lgp-heading,
  body .lgp-range .lgp-message .lgp-heading {
    font-size: 29px !important;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__visual {
    width: min(100%, 300px) !important;
    min-height: 365px;
  }

  body .lgp-range .lgp-message .lgp-message__visual {
    width: min(100%, 280px) !important;
    min-height: 320px;
  }

  body .lgp-range .lgp-message .lgp-message__years {
    font-size: 98px !important;
  }
}

/* =========================================================
   REQUESTED CORRECTIONS / FINAL OVERRIDES

   1. セクション間の白い余白を削除
   2. SUPPORT MODELの見出し一式を中央揃え
   3. 「人＋仕組み」を分かりやすい成長構造図へ変更
========================================================= */

/* ---------------------------------------------------------
   1. Classic Editorが各セクション間に生成する空段落を削除
--------------------------------------------------------- */
body .lgp-range > p:empty,
body .lgp-range > p:has(> br:only-child),
body .lgp-range > br {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

body .lgp-range > section {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* ---------------------------------------------------------
   2. SUPPORT MODEL / Centered heading composition
--------------------------------------------------------- */
body .lgp-range .lgp-support .lgp-section-heading {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  width: min(100%, 860px) !important;
  height: auto !important;
  margin: 0 auto 48px !important;
  padding: 0 !important;
  text-align: center !important;
}

body .lgp-range .lgp-support .lgp-kicker {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  height: auto !important;
  margin: 0 0 16px !important;
  padding: 0 !important;
  color: var(--lgp-green) !important;
  font-family: var(--lgp-en) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  letter-spacing: 0.23em !important;
  text-align: center !important;
}

body .lgp-range .lgp-support .lgp-kicker::before {
  flex: 0 0 28px !important;
  width: 28px !important;
}

body .lgp-range .lgp-support .lgp-heading {
  width: 100% !important;
  height: auto !important;
  margin: 0 0 18px !important;
  padding: 0 !important;
  color: var(--lgp-forest) !important;
  font-family: var(--lgp-serif) !important;
  font-size: clamp(38px, 3.2vw, 44px) !important;
  font-weight: 600 !important;
  line-height: 1.5 !important;
  letter-spacing: 0.03em !important;
  text-align: center !important;
}

body .lgp-range .lgp-support .lgp-section-description {
  width: min(100%, 760px) !important;
  height: auto !important;
  margin: 0 auto !important;
  padding: 0 !important;
  color: var(--lgp-text-sub) !important;
  font-family: var(--lgp-sans) !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  line-height: 2.05 !important;
  letter-spacing: 0 !important;
  text-align: center !important;
}

/* ---------------------------------------------------------
   3. HUMAN + SYSTEM / Clear growth diagram
--------------------------------------------------------- */
body .lgp-range .lgp-consulting .lgp-consulting__visual {
  position: relative !important;
  display: grid !important;
  place-items: center !important;
  min-height: 510px !important;
  padding: 70px 20px 36px !important;
  overflow: hidden !important;
  border: 1px solid rgba(31, 111, 92, 0.14) !important;
  border-radius: 32px !important;
  background:
    radial-gradient(circle at 50% 42%, rgba(206, 232, 219, 0.76) 0%, rgba(237, 246, 241, 0.72) 42%, rgba(255, 255, 255, 0.98) 74%) !important;
  box-shadow:
    0 28px 70px rgba(23, 76, 66, 0.09),
    inset 0 1px 0 rgba(255, 255, 255, 0.94) !important;
}

body .lgp-range .lgp-consulting .lgp-consulting__visual::before {
  content: "PEOPLE  ×  SYSTEM" !important;
  position: absolute !important;
  top: 27px !important;
  left: 50% !important;
  z-index: 7 !important;
  width: auto !important;
  height: auto !important;
  color: rgba(23, 76, 66, 0.55) !important;
  border: 0 !important;
  border-radius: 0 !important;
  transform: translateX(-50%) !important;
  font-family: var(--lgp-en) !important;
  font-size: 9px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  letter-spacing: 0.23em !important;
  white-space: nowrap !important;
}

body .lgp-range .lgp-consulting .lgp-consulting__visual::after {
  content: "" !important;
  position: absolute !important;
  inset: 15px !important;
  z-index: 0 !important;
  width: auto !important;
  height: auto !important;
  border: 1px solid rgba(31, 111, 92, 0.075) !important;
  border-radius: 23px !important;
  background: transparent !important;
  pointer-events: none !important;
}

/* 以前の同心円・装飾ドットは非表示 */
body .lgp-range .lgp-consulting .lgp-consulting__circle,
body .lgp-range .lgp-consulting .lgp-consulting__node {
  display: none !important;
}

body .lgp-range .lgp-consulting .lgp-consulting__mark {
  position: relative !important;
  top: auto !important;
  left: auto !important;
  z-index: 5 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 14px !important;
  width: min(100%, 394px) !important;
  height: 350px !important;
  margin: 0 auto !important;
  padding: 0 0 116px !important;
  color: var(--lgp-green) !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  transform: none !important;
  font-family: var(--lgp-serif) !important;
  font-size: 27px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  white-space: nowrap !important;
}

/* 「人」「仕組み」を2つの役割として明確に表示 */
body .lgp-range .lgp-consulting .lgp-consulting__mark > span {
  position: relative !important;
  display: flex !important;
  flex: 0 0 158px !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  width: 158px !important;
  height: 158px !important;
  margin: 0 !important;
  padding: 0 13px 24px !important;
  color: var(--lgp-forest) !important;
  border: 1px solid rgba(31, 111, 92, 0.22) !important;
  border-radius: 50% !important;
  background: rgba(255, 255, 255, 0.92) !important;
  box-shadow: 0 18px 42px rgba(23, 76, 66, 0.09) !important;
  font-family: var(--lgp-serif) !important;
  font-size: 34px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  letter-spacing: 0.04em !important;
  text-align: center !important;
}

body .lgp-range .lgp-consulting .lgp-consulting__mark > span:first-child {
  border-color: rgba(31, 111, 92, 0.28) !important;
  background: linear-gradient(145deg, #ffffff 0%, #edf6f1 100%) !important;
}

body .lgp-range .lgp-consulting .lgp-consulting__mark > span:last-child {
  color: #745f36 !important;
  border-color: rgba(170, 138, 84, 0.26) !important;
  background: linear-gradient(145deg, #ffffff 0%, #f7f2e8 100%) !important;
}

body .lgp-range .lgp-consulting .lgp-consulting__mark > span::after {
  position: absolute !important;
  right: 13px !important;
  bottom: 33px !important;
  left: 13px !important;
  display: block !important;
  color: rgba(23, 76, 66, 0.56) !important;
  font-family: var(--lgp-en) !important;
  font-size: 7px !important;
  font-weight: 700 !important;
  line-height: 1.45 !important;
  letter-spacing: 0.12em !important;
  text-align: center !important;
  white-space: normal !important;
}

body .lgp-range .lgp-consulting .lgp-consulting__mark > span:first-child::after {
  content: "PEOPLE / ORGANIZATION" !important;
}

body .lgp-range .lgp-consulting .lgp-consulting__mark > span:last-child::after {
  content: "SYSTEM / STRATEGY" !important;
  color: rgba(116, 95, 54, 0.62) !important;
}

/* 2つの要素が成長へつながることを明示 */
body .lgp-range .lgp-consulting .lgp-consulting__mark::before {
  content: "↓" !important;
  position: absolute !important;
  bottom: 82px !important;
  left: 50% !important;
  color: rgba(31, 111, 92, 0.55) !important;
  transform: translateX(-50%) !important;
  font-family: var(--lgp-sans) !important;
  font-size: 21px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
}

body .lgp-range .lgp-consulting .lgp-consulting__mark::after {
  content: "持続的な店舗成長" !important;
  position: absolute !important;
  bottom: 17px !important;
  left: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 224px !important;
  min-height: 48px !important;
  padding: 10px 22px !important;
  color: #ffffff !important;
  border: 1px solid rgba(23, 76, 66, 0.82) !important;
  border-radius: 999px !important;
  background: linear-gradient(135deg, var(--lgp-forest) 0%, var(--lgp-green) 100%) !important;
  box-shadow: 0 13px 30px rgba(23, 76, 66, 0.17) !important;
  transform: translateX(-50%) !important;
  font-family: var(--lgp-sans) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  letter-spacing: 0.04em !important;
  text-align: center !important;
  white-space: nowrap !important;
}

/* ---------------------------------------------------------
   Responsive corrections
--------------------------------------------------------- */
@media (max-width: 767px) {
  body .lgp-range .lgp-support .lgp-section-heading {
    margin-bottom: 35px !important;
  }

  body .lgp-range .lgp-support .lgp-kicker {
    margin-bottom: 13px !important;
    font-size: 9px !important;
  }

  body .lgp-range .lgp-support .lgp-heading {
    margin-bottom: 15px !important;
    font-size: 30px !important;
    line-height: 1.52 !important;
  }

  body .lgp-range .lgp-support .lgp-section-description {
    font-size: 13px !important;
    line-height: 1.95 !important;
    text-align: center !important;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__visual {
    width: min(100%, 330px) !important;
    min-height: 400px !important;
    padding: 58px 10px 24px !important;
    border-radius: 25px !important;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__visual::before {
    top: 22px !important;
    font-size: 7px !important;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__visual::after {
    inset: 10px !important;
    border-radius: 18px !important;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__mark {
    gap: 8px !important;
    width: 304px !important;
    height: 318px !important;
    padding-bottom: 107px !important;
    font-size: 21px !important;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__mark > span {
    flex-basis: 126px !important;
    width: 126px !important;
    height: 126px !important;
    padding: 0 9px 21px !important;
    font-size: 27px !important;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__mark > span::after {
    right: 8px !important;
    bottom: 26px !important;
    left: 8px !important;
    font-size: 5.5px !important;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__mark::before {
    bottom: 76px !important;
    font-size: 18px !important;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__mark::after {
    bottom: 17px !important;
    width: 196px !important;
    min-height: 44px !important;
    font-size: 12px !important;
  }
}

@media (max-width: 374px) {
  body .lgp-range .lgp-consulting .lgp-consulting__visual {
    width: min(100%, 300px) !important;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__mark {
    width: 282px !important;
    gap: 6px !important;
    font-size: 19px !important;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__mark > span {
    flex-basis: 118px !important;
    width: 118px !important;
    height: 118px !important;
    font-size: 25px !important;
  }
}

/* =========================================================
   V2 PRECISION FIX

   ・コメント入り区切り段落を確実に削除
   ・「人＋仕組み」を役割→統合→成果の図解へ再構成
========================================================= */

/* ---------------------------------------------------------
   Section gaps

   対象のPにはHTMLコメントが入っているため :empty ではなく、
   .lgp-range直下の区切りPを対象にする。
--------------------------------------------------------- */
body .lgp-range > p {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  font-size: 0 !important;
  line-height: 0 !important;
}

body .lgp-range > section,
body .lgp-range > p + section {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* ---------------------------------------------------------
   HUMAN + SYSTEM / Refined information diagram
--------------------------------------------------------- */
body .lgp-range .lgp-consulting .lgp-consulting__visual {
  position: relative !important;
  isolation: isolate !important;
  display: grid !important;
  place-items: center !important;
  width: 100% !important;
  max-width: 430px !important;
  min-height: 520px !important;
  margin: 0 !important;
  padding: 82px 24px 32px !important;
  overflow: hidden !important;
  border: 1px solid rgba(31, 111, 92, 0.14) !important;
  border-radius: 32px !important;
  background:
    radial-gradient(circle at 50% 44%, rgba(210, 234, 222, 0.72) 0%, rgba(237, 246, 241, 0.68) 44%, rgba(255, 255, 255, 0.98) 78%) !important;
  box-shadow:
    0 28px 72px rgba(23, 76, 66, 0.095),
    inset 0 1px 0 rgba(255, 255, 255, 0.95) !important;
}

body .lgp-range .lgp-consulting .lgp-consulting__visual::before {
  content: "人と仕組みを、ひとつの成長基盤へ" !important;
  position: absolute !important;
  z-index: 8 !important;
  top: 28px !important;
  left: 50% !important;
  width: max-content !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 0 10px !important;
  color: rgba(23, 76, 66, 0.68) !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(31, 111, 92, 0.2) !important;
  border-radius: 0 !important;
  background: transparent !important;
  transform: translateX(-50%) !important;
  font-family: var(--lgp-sans) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  line-height: 1.45 !important;
  letter-spacing: 0.055em !important;
  text-align: center !important;
  white-space: nowrap !important;
}

body .lgp-range .lgp-consulting .lgp-consulting__visual::after {
  content: "" !important;
  position: absolute !important;
  z-index: 0 !important;
  inset: 15px !important;
  width: auto !important;
  height: auto !important;
  border: 1px solid rgba(31, 111, 92, 0.075) !important;
  border-radius: 23px !important;
  background: transparent !important;
  pointer-events: none !important;
}

/* 旧図解の装飾と、Classic Editorが生成したBR・Pを除外 */
body .lgp-range .lgp-consulting .lgp-consulting__circle,
body .lgp-range .lgp-consulting .lgp-consulting__node,
body .lgp-range .lgp-consulting .lgp-consulting__visual > p,
body .lgp-range .lgp-consulting .lgp-consulting__mark > br {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/*
 * 図解構造
 * ┌────────┬───┬────────┐
 * │   人     │ ＋ │   仕組み   │
 * └────────┴───┴────────┘
 *              ↓
 *       持続的な店舗成長
 */
body .lgp-range .lgp-consulting .lgp-consulting__mark {
  position: relative !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  z-index: 6 !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 44px minmax(0, 1fr) !important;
  grid-template-rows: 190px 45px 54px !important;
  grid-template-areas:
    "people plus system"
    "flow flow flow"
    "result result result" !important;
  column-gap: 12px !important;
  row-gap: 7px !important;
  align-items: center !important;
  justify-items: stretch !important;
  width: min(100%, 382px) !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 auto !important;
  padding: 0 !important;
  color: var(--lgp-forest) !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  transform: none !important;
  font-family: var(--lgp-sans) !important;
  font-size: 0 !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  white-space: normal !important;
}

body .lgp-range .lgp-consulting .lgp-consulting__mark > span {
  position: relative !important;
  display: flex !important;
  flex: none !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 190px !important;
  margin: 0 !important;
  padding: 51px 15px 53px !important;
  overflow: hidden !important;
  border-radius: 25px !important;
  box-shadow:
    0 18px 40px rgba(23, 76, 66, 0.075),
    inset 0 1px 0 rgba(255, 255, 255, 0.94) !important;
  font-family: var(--lgp-serif) !important;
  font-size: 35px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  letter-spacing: 0.04em !important;
  text-align: center !important;
}

body .lgp-range .lgp-consulting .lgp-consulting__mark > span:first-child {
  grid-area: people;
  color: var(--lgp-forest) !important;
  border: 1px solid rgba(31, 111, 92, 0.22) !important;
  background:
    radial-gradient(circle at 100% 0%, rgba(195, 225, 210, 0.58) 0%, rgba(195, 225, 210, 0) 43%),
    linear-gradient(145deg, #ffffff 0%, #eef7f2 100%) !important;
}

body .lgp-range .lgp-consulting .lgp-consulting__mark > span:last-child {
  grid-area: system;
  color: #745f36 !important;
  border: 1px solid rgba(170, 138, 84, 0.24) !important;
  background:
    radial-gradient(circle at 0% 0%, rgba(227, 211, 177, 0.48) 0%, rgba(227, 211, 177, 0) 43%),
    linear-gradient(145deg, #ffffff 0%, #faf6ed 100%) !important;
}

/* カード上部の役割ラベル */
body .lgp-range .lgp-consulting .lgp-consulting__mark > span::before {
  position: absolute !important;
  top: 23px !important;
  right: 12px !important;
  left: 12px !important;
  display: block !important;
  font-family: var(--lgp-en) !important;
  font-size: 7px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  letter-spacing: 0.15em !important;
  text-align: center !important;
  white-space: nowrap !important;
}

body .lgp-range .lgp-consulting .lgp-consulting__mark > span:first-child::before {
  content: "PEOPLE / ORGANIZATION" !important;
  color: rgba(23, 76, 66, 0.6) !important;
}

body .lgp-range .lgp-consulting .lgp-consulting__mark > span:last-child::before {
  content: "SYSTEM / STRATEGY" !important;
  color: rgba(116, 95, 54, 0.62) !important;
}

/* カード下部の具体的な役割 */
body .lgp-range .lgp-consulting .lgp-consulting__mark > span::after {
  position: absolute !important;
  right: 12px !important;
  bottom: 24px !important;
  left: 12px !important;
  display: block !important;
  font-family: var(--lgp-sans) !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  line-height: 1.55 !important;
  letter-spacing: 0.015em !important;
  text-align: center !important;
  white-space: normal !important;
}

body .lgp-range .lgp-consulting .lgp-consulting__mark > span:first-child::after {
  content: "育成・定着・組織づくり" !important;
  color: rgba(23, 76, 66, 0.72) !important;
}

body .lgp-range .lgp-consulting .lgp-consulting__mark > span:last-child::after {
  content: "集客・導線・改善の仕組み" !important;
  color: rgba(116, 95, 54, 0.76) !important;
}

/* 中央の＋ */
body .lgp-range .lgp-consulting .lgp-consulting__mark > i {
  grid-area: plus;
  align-self: center !important;
  justify-self: center !important;
  display: grid !important;
  place-items: center !important;
  width: 42px !important;
  height: 42px !important;
  margin: 0 !important;
  padding: 0 0 2px !important;
  color: #ffffff !important;
  border: 1px solid rgba(23, 76, 66, 0.72) !important;
  border-radius: 50% !important;
  background: linear-gradient(135deg, var(--lgp-forest) 0%, var(--lgp-green) 100%) !important;
  box-shadow: 0 10px 24px rgba(23, 76, 66, 0.17) !important;
  font-family: var(--lgp-sans) !important;
  font-size: 21px !important;
  font-style: normal !important;
  font-weight: 400 !important;
  line-height: 1 !important;
}

/* 統合から成果へつなぐ矢印 */
body .lgp-range .lgp-consulting .lgp-consulting__mark::before {
  content: "↓" !important;
  grid-area: flow;
  position: static !important;
  align-self: center !important;
  justify-self: center !important;
  display: block !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  color: rgba(31, 111, 92, 0.56) !important;
  background: transparent !important;
  transform: none !important;
  font-family: var(--lgp-sans) !important;
  font-size: 23px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
}

/* 最終成果 */
body .lgp-range .lgp-consulting .lgp-consulting__mark::after {
  content: "持続的な店舗成長" !important;
  grid-area: result;
  position: static !important;
  align-self: stretch !important;
  justify-self: center !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: min(100%, 246px) !important;
  min-height: 52px !important;
  margin: 0 !important;
  padding: 11px 24px !important;
  color: #ffffff !important;
  border: 1px solid rgba(23, 76, 66, 0.82) !important;
  border-radius: 999px !important;
  background: linear-gradient(135deg, var(--lgp-forest) 0%, var(--lgp-green) 100%) !important;
  box-shadow: 0 13px 30px rgba(23, 76, 66, 0.18) !important;
  transform: none !important;
  font-family: var(--lgp-sans) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  letter-spacing: 0.045em !important;
  text-align: center !important;
  white-space: nowrap !important;
}

/* ---------------------------------------------------------
   Mobile diagram
--------------------------------------------------------- */
@media (max-width: 767px) {
  body .lgp-range .lgp-consulting .lgp-consulting__visual {
    width: min(100%, 330px) !important;
    min-height: 430px !important;
    padding: 72px 14px 28px !important;
    border-radius: 25px !important;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__visual::before {
    top: 23px !important;
    padding-bottom: 8px !important;
    font-size: 9px !important;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__visual::after {
    inset: 10px !important;
    border-radius: 18px !important;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__mark {
    grid-template-columns: minmax(0, 1fr) 36px minmax(0, 1fr) !important;
    grid-template-rows: 164px 38px 48px !important;
    column-gap: 7px !important;
    row-gap: 6px !important;
    width: min(100%, 292px) !important;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__mark > span {
    height: 164px !important;
    padding: 44px 8px 49px !important;
    border-radius: 20px !important;
    font-size: 27px !important;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__mark > span::before {
    top: 20px !important;
    right: 6px !important;
    left: 6px !important;
    font-size: 5.5px !important;
    letter-spacing: 0.1em !important;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__mark > span::after {
    right: 7px !important;
    bottom: 20px !important;
    left: 7px !important;
    font-size: 8.5px !important;
    line-height: 1.5 !important;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__mark > i {
    width: 34px !important;
    height: 34px !important;
    font-size: 18px !important;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__mark::before {
    font-size: 19px !important;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__mark::after {
    width: min(100%, 208px) !important;
    min-height: 48px !important;
    padding: 10px 18px !important;
    font-size: 12px !important;
  }
}

@media (max-width: 374px) {
  body .lgp-range .lgp-consulting .lgp-consulting__visual {
    width: min(100%, 304px) !important;
    padding-inline: 10px !important;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__mark {
    grid-template-columns: minmax(0, 1fr) 32px minmax(0, 1fr) !important;
    width: min(100%, 278px) !important;
    column-gap: 5px !important;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__mark > span {
    font-size: 25px !important;
  }

  body .lgp-range .lgp-consulting .lgp-consulting__mark > i {
    width: 31px !important;
    height: 31px !important;
    font-size: 16px !important;
  }
}
/* =========================================================
   「集客だけでは、店舗は続かない。」上部余白の最終修正
========================================================= */

/* PC：TCDの不要な余白を削除し、適度な余白を確保 */
@media screen and (min-width: 992px) {
  body .p-cb > #section-560.p-cb-item,
  body .p-cb > .p-cb-item:has(.lgp-range) {
    margin-top: -40px !important;
    padding-top: 0 !important;
  }

  body .lgp-range .lgp-consulting {
    margin-top: 0 !important;
    padding-top: 48px !important;
  }
}

/* タブレット・スマホ：TCD側の40px余白を相殺 */
@media screen and (max-width: 991px) {
  body .p-cb > #section-560.p-cb-item,
  body .p-cb > .p-cb-item:has(.lgp-range) {
    margin-top: -40px !important;
    padding-top: 0 !important;
  }

  body .lgp-range .lgp-consulting {
    margin-top: 0 !important;
    padding-top: 40px !important;
  }
}

/* 親要素に残る余白をリセット */
body #section-560 .p-cb-item-inner,
body #section-560 .p-cb-free-inner,
body #section-560 .p-cb-free-content,
body #section-560 .tcdce-body,
body #section-560 .lgp-range {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* =========================================================
   FINAL CTA下部余白削除 ＋ 19年の実践知 図解
========================================================= */

/* ---------------------------------------------------------
   1. 「まずは、今の課題を整理しませんか？」下の余白を削除
--------------------------------------------------------- */

/* TCDがページ末尾に追加している150pxの余白を削除 */
body .l-container:has(#section-560 .lgp-final-cta) {
  padding-bottom: 0 !important;
}

body .p-cb:has(#section-560 .lgp-final-cta),
body #section-560.p-cb-item,
body #section-560 .p-cb-item-inner,
body #section-560 .p-cb-free-inner,
body #section-560 .p-cb-free-content,
body #section-560 .tcdce-body,
body #section-560 .lgp-range {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}


/* ---------------------------------------------------------
   2. 「19年の実践知」図解
   現状把握 → 戦略設計 → 現場実行 → 継続改善
--------------------------------------------------------- */

body .lgp-range .lgp-message .lgp-message__visual {
  position: relative !important;
  isolation: isolate !important;
  display: grid !important;
  grid-template-columns:
    minmax(0, 1fr)
    minmax(0, 1fr) !important;
  grid-template-rows:
    auto
    minmax(120px, 1fr)
    minmax(120px, 1fr)
    auto !important;
  grid-template-areas:
    "years years"
    "step1 step2"
    "step4 step3"
    "result result" !important;
  gap: 11px !important;
  width: 100% !important;
  max-width: 440px !important;
  min-height: 520px !important;
  margin: 0 0 0 auto !important;
  padding: 27px !important;
  overflow: hidden !important;
  border: 1px solid rgba(255, 255, 255, 0.13) !important;
  border-radius: 30px !important;
  background:
    radial-gradient(
      circle at 100% 0%,
      rgba(199, 173, 115, 0.13) 0%,
      rgba(199, 173, 115, 0) 42%
    ),
    linear-gradient(
      145deg,
      rgba(255, 255, 255, 0.075) 0%,
      rgba(255, 255, 255, 0.025) 100%
    ) !important;
  box-shadow:
    0 28px 70px rgba(5, 30, 25, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.08) !important;
  aspect-ratio: auto !important;
}


/* Classic Editorが生成したPをレイアウトから除外 */
body .lgp-range
.lgp-message
.lgp-message__visual > p {
  display: contents !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

body .lgp-range
.lgp-message
.lgp-message__visual > p > br {
  display: none !important;
}


/* ---------------------------------------------------------
   19 YEARSヘッダー
--------------------------------------------------------- */

body .lgp-range
.lgp-message
.lgp-message__years {
  grid-area: years !important;
  position: relative !important;
  inset: auto !important;
  z-index: 3 !important;
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) !important;
  align-items: center !important;
  width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 0 20px !important;
  color: #ffffff !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.13) !important;
  background: transparent !important;
  transform: none !important;
  text-align: left !important;
  text-shadow: none !important;
  white-space: normal !important;
  font-size: 0 !important;
}

body .lgp-range
.lgp-message
.lgp-message__years strong {
  display: block !important;
  margin: 0 !important;
  color: #ffffff !important;
  font-family: var(--lgp-en) !important;
  font-size: 76px !important;
  font-weight: 300 !important;
  line-height: 0.9 !important;
  letter-spacing: -0.07em !important;
}

body .lgp-range
.lgp-message
.lgp-message__years span {
  display: block !important;
  width: auto !important;
  height: auto !important;
  margin: 0 0 0 21px !important;
  padding: 0 !important;
  color: transparent !important;
  font-size: 0 !important;
  line-height: 1 !important;
  text-align: left !important;
}

body .lgp-range
.lgp-message
.lgp-message__years span br {
  display: none !important;
}

body .lgp-range
.lgp-message
.lgp-message__years span::before {
  content: "YEARS OF PRACTICE" !important;
  display: block !important;
  margin-bottom: 7px !important;
  color: #d7bc83 !important;
  font-family: var(--lgp-en) !important;
  font-size: 9px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  letter-spacing: 0.25em !important;
}

body .lgp-range
.lgp-message
.lgp-message__years span::after {
  content: "現場で磨いた、店舗成長の実践知" !important;
  display: block !important;
  color: rgba(235, 244, 239, 0.76) !important;
  font-family: var(--lgp-sans) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  line-height: 1.65 !important;
  letter-spacing: 0.03em !important;
}


/* ---------------------------------------------------------
   4つの実践プロセス
--------------------------------------------------------- */

body .lgp-range
.lgp-message
.lgp-message__orbit,
body .lgp-range
.lgp-message
.lgp-message__dot {
  position: relative !important;
  inset: auto !important;
  z-index: 2 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: center !important;
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  min-height: 120px !important;
  margin: 0 !important;
  padding: 18px 16px !important;
  color: #ffffff !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  border-radius: 16px !important;
  background:
    linear-gradient(
      145deg,
      rgba(255, 255, 255, 0.09) 0%,
      rgba(255, 255, 255, 0.035) 100%
    ) !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.06) !important;
  transform: none !important;
  font-style: normal !important;
  text-align: left !important;
}

body .lgp-range
.lgp-message
.lgp-message__orbit::before,
body .lgp-range
.lgp-message
.lgp-message__dot::before {
  display: block !important;
  margin-bottom: 10px !important;
  color: #d7bc83 !important;
  font-family: var(--lgp-en) !important;
  font-size: 8px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  letter-spacing: 0.17em !important;
}

body .lgp-range
.lgp-message
.lgp-message__orbit::after,
body .lgp-range
.lgp-message
.lgp-message__dot::after {
  display: block !important;
  color: #ffffff !important;
  font-family: var(--lgp-sans) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  line-height: 1.75 !important;
  letter-spacing: 0.025em !important;
  white-space: pre-line !important;
}


/* 01 現状把握 */
body .lgp-range
.lgp-message
.lgp-message__orbit--01 {
  grid-area: step1 !important;
}

body .lgp-range
.lgp-message
.lgp-message__orbit--01::before {
  content: "01 / UNDERSTAND" !important;
}

body .lgp-range
.lgp-message
.lgp-message__orbit--01::after {
  content: "現状把握\A課題を正しく捉える" !important;
}


/* 02 戦略設計 */
body .lgp-range
.lgp-message
.lgp-message__orbit--02 {
  grid-area: step2 !important;
}

body .lgp-range
.lgp-message
.lgp-message__orbit--02::before {
  content: "02 / DESIGN" !important;
}

body .lgp-range
.lgp-message
.lgp-message__orbit--02::after {
  content: "戦略設計\A打ち手を仕組みにする" !important;
}


/* 03 現場実行 */
body .lgp-range
.lgp-message
.lgp-message__dot--01 {
  grid-area: step3 !important;
}

body .lgp-range
.lgp-message
.lgp-message__dot--01::before {
  content: "03 / ACTION" !important;
}

body .lgp-range
.lgp-message
.lgp-message__dot--01::after {
  content: "現場実行\A人と組織を動かす" !important;
}


/* 04 継続改善 */
body .lgp-range
.lgp-message
.lgp-message__dot--02 {
  grid-area: step4 !important;
}

body .lgp-range
.lgp-message
.lgp-message__dot--02::before {
  content: "04 / IMPROVE" !important;
}

body .lgp-range
.lgp-message
.lgp-message__dot--02::after {
  content: "継続改善\A成果を積み上げる" !important;
}


/* 中央の循環マーク */
body .lgp-range
.lgp-message
.lgp-message__visual::before {
  content: "↻" !important;
  position: absolute !important;
  top: 59% !important;
  left: 50% !important;
  right: auto !important;
  bottom: auto !important;
  z-index: 5 !important;
  display: grid !important;
  place-items: center !important;
  width: 46px !important;
  height: 46px !important;
  color: #d7bc83 !important;
  border: 1px solid rgba(215, 188, 131, 0.35) !important;
  border-radius: 50% !important;
  background: #164b41 !important;
  box-shadow:
    0 10px 25px rgba(5, 30, 25, 0.26),
    0 0 0 6px rgba(22, 75, 65, 0.82) !important;
  transform: translate(-50%, -50%) !important;
  font-family: Arial, sans-serif !important;
  font-size: 24px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
}


/* 図解の結論 */
body .lgp-range
.lgp-message
.lgp-message__visual::after {
  content: "実践知を、現場で動く仕組みへ" !important;
  grid-area: result !important;
  position: static !important;
  inset: auto !important;
  z-index: 3 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  height: auto !important;
  min-height: 52px !important;
  margin: 2px 0 0 !important;
  padding: 11px 18px !important;
  color: #164b41 !important;
  border: 1px solid rgba(215, 188, 131, 0.8) !important;
  border-radius: 999px !important;
  background:
    linear-gradient(
      135deg,
      #e3cd9d 0%,
      #d7bc83 100%
    ) !important;
  box-shadow: 0 12px 28px rgba(5, 30, 25, 0.18) !important;
  transform: none !important;
  font-family: var(--lgp-sans) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  line-height: 1.5 !important;
  letter-spacing: 0.04em !important;
  text-align: center !important;
}


/* ---------------------------------------------------------
   スマホ調整
--------------------------------------------------------- */

@media screen and (max-width: 767px) {
  body .lgp-range
  .lgp-message
  .lgp-message__visual {
    width: min(100%, 360px) !important;
    max-width: 360px !important;
    min-height: 470px !important;
    margin-inline: auto !important;
    padding: 20px !important;
    gap: 8px !important;
    border-radius: 24px !important;
  }

  body .lgp-range
  .lgp-message
  .lgp-message__years {
    padding-bottom: 16px !important;
  }

  body .lgp-range
  .lgp-message
  .lgp-message__years strong {
    font-size: 61px !important;
  }

  body .lgp-range
  .lgp-message
  .lgp-message__years span {
    margin-left: 15px !important;
  }

  body .lgp-range
  .lgp-message
  .lgp-message__years span::before {
    font-size: 7px !important;
  }

  body .lgp-range
  .lgp-message
  .lgp-message__years span::after {
    font-size: 9px !important;
  }

  body .lgp-range
  .lgp-message
  .lgp-message__orbit,
  body .lgp-range
  .lgp-message
  .lgp-message__dot {
    min-height: 105px !important;
    padding: 14px 11px !important;
    border-radius: 13px !important;
  }

  body .lgp-range
  .lgp-message
  .lgp-message__orbit::before,
  body .lgp-range
  .lgp-message
  .lgp-message__dot::before {
    margin-bottom: 7px !important;
    font-size: 6px !important;
  }

  body .lgp-range
  .lgp-message
  .lgp-message__orbit::after,
  body .lgp-range
  .lgp-message
  .lgp-message__dot::after {
    font-size: 10px !important;
    line-height: 1.65 !important;
  }

  body .lgp-range
  .lgp-message
  .lgp-message__visual::before {
    top: 59% !important;
    width: 38px !important;
    height: 38px !important;
    font-size: 20px !important;
  }

  body .lgp-range
  .lgp-message
  .lgp-message__visual::after {
    min-height: 46px !important;
    padding: 9px 13px !important;
    font-size: 10px !important;
  }
}

/* =========================================================
   白いセクション間余白を完全に削除
========================================================= */

/*
  TCDのセクション間row-gapを直接削除。
  これまでのマイナスマージンもリセットする。
*/
body.home .p-cb {
  row-gap: 0 !important;
}

body.home .p-cb > .p-cb-item {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}


/* =========================================================
   Concept Bridge下〜SERVICE
========================================================= */

/* 緑カード下に最低限の余白だけ残す */
body.home .lg-concept-bridge {
  margin-bottom: 0 !important;
  padding-bottom: 30px !important;
}

/* Concept Bridgeを囲む親要素の余白を削除 */
body.home #section-6,
body.home #section-6 .p-cb-item-inner,
body.home #section-6 .p-cb-free-inner,
body.home #section-6 .p-cb-free-content,
body.home #section-6 .tcdce-body {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}


/* SERVICE背景を直前のセクションまで隙間なくつなげる */
body.home #section-1.p-cb-service {
  position: relative !important;
  z-index: 2 !important;
  margin: 0 !important;
  padding-top: 100px !important;
  background-color: #f6f6f6 !important;
}

body.home #section-1 .p-cb-service__inner {
  margin-top: 0 !important;
  padding-top: 0 !important;
}


/* =========================================================
   SP
========================================================= */

@media screen and (max-width: 767px) {
  /* Concept Bridgeの下余白 */
  body.home .lg-concept-bridge {
    margin-bottom: 0 !important;
    padding-bottom: 30px !important;
  }

  /* SERVICEの上部 */
  body.home #section-1.p-cb-service {
    margin: 0 !important;
    padding-top: 60px !important;
  }

  /*
    Classic Editorが挿入した不要なP・BRをすべて削除。
    コメントが入っているため、:emptyは使用しない。
  */
  body.home .lg-concept-bridge__inner > p,
  body.home .lg-concept-bridge__compare > p,
  body.home .lg-concept-bridge__compare > br {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    font-size: 0 !important;
    line-height: 0 !important;
  }

  /*
    SPでは比較エリアをGridからFlexへ変更。
    自動生成された空のGrid行を完全に無くす。
  */
  body.home .lg-concept-bridge__compare {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 10px !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 0 8px !important;
    padding: 0 !important;
  }

  body.home .lg-concept-bridge__panel,
  body.home .lg-concept-bridge__panel--before,
  body.home .lg-concept-bridge__panel--after {
    flex: none !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
  }

  body.home .lg-concept-bridge__arrow-wrap {
    flex: none !important;
    min-height: 48px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* 「サービスを導入することが目的ではなく」カード */
  body.home .lg-concept-bridge__message {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding-top: 40px !important;
    transform: none !important;
  }
}

/* =========================================================
   代表メッセージ｜コンパクト横長レイアウト
========================================================= */

body .lgp-range .lgp-message--compact {
  padding: 68px 0 72px !important;
}

/* 過去の図解が残っていても非表示 */
body .lgp-range
.lgp-message--compact
.lgp-message__visual {
  display: none !important;
}

/* セクションを強制的に1カラム化 */
body .lgp-range
.lgp-message--compact
.lgp-message__grid {
  display: block !important;
  width: min(calc(100% - 48px), 1080px) !important;
  min-height: 0 !important;
  margin-inline: auto !important;
}

body .lgp-range
.lgp-message--compact
.lgp-message__content {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* =========================================================
   上段
========================================================= */

body .lgp-range
.lgp-message--compact
.lgp-message__top {
  display: grid !important;
  grid-template-columns:
    minmax(320px, 0.78fr)
    minmax(0, 1.22fr) !important;
  gap: 64px !important;
  align-items: end !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 0 28px !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12) !important;
}

body .lgp-range
.lgp-message--compact
.lgp-message__heading-block {
  min-width: 0 !important;
}

body .lgp-range
.lgp-message--compact
.lgp-kicker {
  margin: 0 0 13px !important;
}

body .lgp-range
.lgp-message--compact
.lgp-heading {
  margin: 0 !important;
  font-size: clamp(38px, 3.3vw, 46px) !important;
  line-height: 1.43 !important;
  letter-spacing: 0.025em !important;
}

/* =========================================================
   経歴
========================================================= */

body .lgp-range
.lgp-message--compact
.lgp-message__experience {
  min-width: 0 !important;
}

body .lgp-range
.lgp-message--compact
.lgp-message__career {
  display: grid !important;
  grid-template-columns:
    repeat(2, minmax(0, 1fr)) !important;
  gap: 9px !important;
  width: 100% !important;
  margin: 0 0 15px !important;
  padding: 0 !important;
}

body .lgp-range
.lgp-message--compact
.lgp-message__career-item {
  min-width: 0 !important;
  margin: 0 !important;
  padding: 12px 15px 13px !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  border-radius: 11px !important;
  background:
    linear-gradient(
      135deg,
      rgba(255, 255, 255, 0.07) 0%,
      rgba(255, 255, 255, 0.025) 100%
    ) !important;
}

body .lgp-range
.lgp-message--compact
.lgp-message__career dt {
  margin: 0 0 5px !important;
  color: #d7bc83 !important;
  font-family: Arial, sans-serif !important;
  font-size: 7.5px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  letter-spacing: 0.18em !important;
}

body .lgp-range
.lgp-message--compact
.lgp-message__career dd {
  margin: 0 !important;
  color: rgba(240, 247, 243, 0.88) !important;
  font-family:
    "Noto Sans JP",
    "Yu Gothic",
    YuGothic,
    sans-serif !important;
  font-size: 11.5px !important;
  font-weight: 500 !important;
  line-height: 1.65 !important;
}

body .lgp-range
.lgp-message--compact
p.lgp-message__lead {
  margin: 0 !important;
  color: rgba(230, 241, 235, 0.78) !important;
  font-family:
    "Noto Sans JP",
    "Yu Gothic",
    YuGothic,
    sans-serif !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  line-height: 1.9 !important;
}

/* =========================================================
   下段
========================================================= */

body .lgp-range
.lgp-message--compact
.lgp-message__bottom {
  display: grid !important;
  grid-template-columns:
    minmax(0, 1fr)
    minmax(0, 1fr) !important;
  gap: 50px !important;
  align-items: center !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 28px 0 0 !important;
}

/* 引用側 */
body .lgp-range
.lgp-message--compact
.lgp-message__belief {
  min-width: 0 !important;
}

body .lgp-range
.lgp-message--compact
p.lgp-message__insight {
  margin: 0 0 8px !important;
  color: rgba(221, 234, 227, 0.68) !important;
  font-size: 11.5px !important;
  line-height: 1.7 !important;
}

body .lgp-range
.lgp-message--compact
.lgp-message__quote {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  min-height: 0 !important;
  margin: 0 0 8px !important;
  padding: 19px 22px 20px !important;
  overflow: hidden !important;
  border: 1px solid rgba(255, 255, 255, 0.11) !important;
  border-left: 3px solid #c7ad73 !important;
  border-radius: 0 14px 14px 0 !important;
  background:
    linear-gradient(
      90deg,
      rgba(255, 255, 255, 0.08) 0%,
      rgba(255, 255, 255, 0.025) 100%
    ) !important;
  box-shadow: 0 15px 38px rgba(5, 30, 25, 0.12) !important;
}

body .lgp-range
.lgp-message--compact
.lgp-message__quote p {
  position: relative !important;
  z-index: 2 !important;
  margin: 0 !important;
  color: #ffffff !important;
  font-family:
    "Noto Serif JP",
    "Yu Mincho",
    YuMincho,
    serif !important;
  font-size: 17px !important;
  font-weight: 600 !important;
  line-height: 1.8 !important;
  letter-spacing: 0.02em !important;
}

body .lgp-range
.lgp-message--compact
.lgp-message__quote::after {
  content: "“" !important;
  position: absolute !important;
  top: -25px !important;
  right: 14px !important;
  color: rgba(255, 255, 255, 0.05) !important;
  font-family: Georgia, serif !important;
  font-size: 100px !important;
  line-height: 1 !important;
}

body .lgp-range
.lgp-message--compact
p.lgp-message__quote-tail {
  margin: 0 !important;
  color: rgba(226, 238, 232, 0.7) !important;
  font-size: 12px !important;
  line-height: 1.7 !important;
}

/* 本文側 */
body .lgp-range
.lgp-message--compact
.lgp-message__body-area {
  min-width: 0 !important;
  padding: 3px 0 3px 34px !important;
  border-left: 1px solid rgba(255, 255, 255, 0.12) !important;
}

body .lgp-range
.lgp-message--compact
p.lgp-message__body {
  margin: 0 0 12px !important;
  color: rgba(226, 238, 232, 0.78) !important;
  font-family:
    "Noto Sans JP",
    "Yu Gothic",
    YuGothic,
    sans-serif !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  line-height: 1.9 !important;
}

body .lgp-range
.lgp-message--compact
p.lgp-message__body--last {
  margin-bottom: 0 !important;
}

body .lgp-range
.lgp-message--compact
.lgp-text-link {
  margin-top: 16px !important;
}

/* =========================================================
   WordPress自動生成要素を削除
========================================================= */

body .lgp-range
.lgp-message--compact
.lgp-message__top > p:not([class]),
body .lgp-range
.lgp-message--compact
.lgp-message__bottom > p:not([class]),
body .lgp-range
.lgp-message--compact
.lgp-message__career > p,
body .lgp-range
.lgp-message--compact
.lgp-message__career-item > p:empty,
body .lgp-range
.lgp-message--compact
.lgp-message__heading-block > p:empty,
body .lgp-range
.lgp-message--compact
.lgp-message__experience > p:empty,
body .lgp-range
.lgp-message--compact
.lgp-message__belief > p:empty,
body .lgp-range
.lgp-message--compact
.lgp-message__body-area > p:empty,
body .lgp-range
.lgp-message--compact
.lgp-message__content > p:empty,
body .lgp-range
.lgp-message--compact
.lgp-message__grid > p:empty {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

/* =========================================================
   SP
========================================================= */

@media screen and (max-width: 767px) {
  body .lgp-range .lgp-message--compact {
    padding: 64px 0 68px !important;
  }

  body .lgp-range
  .lgp-message--compact
  .lgp-message__grid {
    width: min(calc(100% - 40px), 1080px) !important;
  }

  body .lgp-range
  .lgp-message--compact
  .lgp-message__top,
  body .lgp-range
  .lgp-message--compact
  .lgp-message__bottom {
    grid-template-columns: 1fr !important;
  }

  body .lgp-range
  .lgp-message--compact
  .lgp-message__top {
    gap: 23px !important;
    padding-bottom: 25px !important;
  }

  body .lgp-range
  .lgp-message--compact
  .lgp-message__bottom {
    gap: 25px !important;
    padding-top: 25px !important;
  }

  body .lgp-range
  .lgp-message--compact
  .lgp-heading {
    font-size: 31px !important;
    line-height: 1.5 !important;
  }

  body .lgp-range
  .lgp-message--compact
  .lgp-message__career {
    grid-template-columns: 1fr !important;
    gap: 7px !important;
  }

  body .lgp-range
  .lgp-message--compact
  .lgp-message__body-area {
    padding: 24px 0 0 !important;
    border-top: 1px solid rgba(255, 255, 255, 0.12) !important;
    border-left: 0 !important;
  }

  body .lgp-range
  .lgp-message--compact
  .lgp-message__quote {
    padding: 18px 17px 19px !important;
  }

  body .lgp-range
  .lgp-message--compact
  .lgp-message__quote p {
    font-size: 16px !important;
  }
}

/* =========================================================
   GROWTH JOURNEY
   分断された施策を、一本の成長導線へ。
========================================================= */

.lg-growth-route,
.lg-growth-route *,
.lg-growth-route *::before,
.lg-growth-route *::after {
  box-sizing: border-box;
}

.lg-growth-route {
  --gr-forest: #164b41;
  --gr-green: #1f6f5c;
  --gr-light-green: #729c89;
  --gr-gold: #b99a5d;
  --gr-gold-light: #d5bd89;
  --gr-ink: #21342e;
  --gr-muted: #65736d;
  --gr-line: rgba(31, 111, 92, 0.18);
  --gr-serif:
    "Noto Serif JP",
    "Yu Mincho",
    YuMincho,
    serif;
  --gr-sans:
    "Noto Sans JP",
    "Yu Gothic",
    YuGothic,
    sans-serif;

  position: relative;
  isolation: isolate;
  width: 100vw;
  max-width: none !important;
  margin: 0 0 0 calc(50% - 50vw) !important;
  padding: 94px 0 98px !important;
  overflow: hidden;
  color: var(--gr-ink);
  background:
    radial-gradient(
      circle at 4% 6%,
      rgba(218, 229, 221, 0.72) 0%,
      rgba(218, 229, 221, 0.18) 23%,
      rgba(218, 229, 221, 0) 43%
    ),
    radial-gradient(
      circle at 96% 100%,
      rgba(213, 189, 137, 0.18) 0%,
      rgba(213, 189, 137, 0) 30%
    ),
    linear-gradient(
      180deg,
      #f7f5ef 0%,
      #f3f2ec 100%
    );
}

/* 背景の細いグリッド */
.lg-growth-route::before {
  position: absolute;
  z-index: -2;
  inset: 0;
  content: "";
  opacity: 0.38;
  background-image:
    linear-gradient(
      rgba(22, 75, 65, 0.035) 1px,
      transparent 1px
    ),
    linear-gradient(
      90deg,
      rgba(22, 75, 65, 0.035) 1px,
      transparent 1px
    );
  background-size: 90px 90px;
  pointer-events: none;
}

/* 背景の大きな曲線 */
.lg-growth-route::after {
  position: absolute;
  right: -210px;
  bottom: -390px;
  z-index: -1;
  width: 690px;
  height: 690px;
  content: "";
  border: 1px solid rgba(31, 111, 92, 0.09);
  border-radius: 50%;
  box-shadow:
    0 0 0 70px rgba(31, 111, 92, 0.018),
    0 0 0 140px rgba(31, 111, 92, 0.012);
  pointer-events: none;
}

/* =========================================================
   INNER
========================================================= */

.lg-growth-route__inner {
  position: relative;
  z-index: 2;
  width: min(calc(100% - 48px), 1180px);
  margin-inline: auto;
}

/* WordPressの空要素対策 */
.lg-growth-route__inner > p:empty,
.lg-growth-route__header > p:empty,
.lg-growth-route__heading > p:empty,
.lg-growth-route__introduction > p:empty,
.lg-growth-route__steps > p,
.lg-growth-route__step > p:empty,
.lg-growth-route__content > p:empty {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

/* =========================================================
   HEADER
========================================================= */

.lg-growth-route__header {
  display: grid;
  grid-template-columns:
    minmax(0, 0.9fr)
    minmax(0, 1fr)
    auto;
  gap: 54px;
  align-items: end;
  padding-bottom: 41px;
  border-bottom: 1px solid var(--gr-line);
}

.lg-growth-route__kicker {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 17px !important;
  color: var(--gr-green) !important;
  font-family: Arial, sans-serif;
  font-size: 9px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.23em;
}

.lg-growth-route__kicker::before {
  width: 34px;
  height: 1px;
  content: "";
  background: var(--gr-gold);
}

.lg-growth-route__heading h2 {
  margin: 0 !important;
  color: var(--gr-forest) !important;
  font-family: var(--gr-serif);
  font-size: clamp(34px, 3.3vw, 47px);
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.025em;
}

.lg-growth-route__introduction {
  padding-bottom: 3px;
}

.lg-growth-route__introduction p {
  margin: 0 0 7px !important;
  color: var(--gr-muted) !important;
  font-family: var(--gr-sans);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.9;
}

.lg-growth-route__introduction p:last-child {
  margin-bottom: 0 !important;
}

/* 01 → 05 */
.lg-growth-route__range {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 142px;
  padding-bottom: 7px;
}

.lg-growth-route__range span {
  color: var(--gr-forest);
  font-family: Arial, sans-serif;
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.08em;
}

.lg-growth-route__range i {
  position: relative;
  flex: 1;
  height: 1px;
  background:
    linear-gradient(
      90deg,
      var(--gr-green) 0%,
      var(--gr-gold) 100%
    );
}

.lg-growth-route__range i::after {
  position: absolute;
  top: 50%;
  right: -1px;
  width: 6px;
  height: 6px;
  content: "";
  border-top: 1px solid var(--gr-gold);
  border-right: 1px solid var(--gr-gold);
  transform: translateY(-50%) rotate(45deg);
}

/* =========================================================
   HORIZONTAL ROUTE
========================================================= */

.lg-growth-route__steps {
  position: relative;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  width: 100%;
  margin: 0 !important;
  padding: 43px 0 0 !important;
  list-style: none !important;
}

/* 5つをつなぐライン */
.lg-growth-route__steps::before {
  position: absolute;
  top: 70px;
  right: 10%;
  left: 10%;
  z-index: 0;
  height: 2px;
  content: "";
  background:
    linear-gradient(
      90deg,
      rgba(31, 111, 92, 0.22) 0%,
      rgba(31, 111, 92, 0.68) 47%,
      rgba(185, 154, 93, 0.78) 100%
    );
}

/* =========================================================
   STEP
========================================================= */

.lg-growth-route__step {
  position: relative;
  z-index: 1;
  min-width: 0;
  margin: 0 !important;
  padding: 0 21px 0 !important;
  list-style: none !important;
}

.lg-growth-route__step + .lg-growth-route__step {
  border-left: 1px solid rgba(31, 111, 92, 0.1);
}

/* ライン上の丸 */
.lg-growth-route__marker {
  position: relative;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 55px;
  height: 55px;
  margin: 0 0 25px !important;
  color: var(--gr-forest);
  border: 1px solid rgba(31, 111, 92, 0.34);
  border-radius: 50%;
  background: #f5f3ed;
  box-shadow:
    0 0 0 7px rgba(245, 243, 237, 0.96),
    0 10px 25px rgba(23, 76, 66, 0.07);
}

.lg-growth-route__marker span {
  font-family: Arial, sans-serif;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.08em;
}

/* 各フェーズの英字 */
.lg-growth-route__phase {
  margin: 0 0 8px !important;
  color: var(--gr-light-green) !important;
  font-family: Arial, sans-serif;
  font-size: 7.5px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.2em;
}

/* 日本語フェーズ名 */
.lg-growth-route__content h3 {
  min-height: 54px;
  margin: 0 0 13px !important;
  color: var(--gr-forest) !important;
  font-family: var(--gr-serif);
  font-size: 18px;
  font-weight: 600;
  line-height: 1.55;
  letter-spacing: 0.02em;
}

/* サービス名 */
.lg-growth-route__service {
  min-height: 42px;
  margin: 0 0 11px !important;
  color: var(--gr-green) !important;
  font-family: var(--gr-sans);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.7;
}

/* 説明文 */
.lg-growth-route__description {
  margin: 0 !important;
  color: var(--gr-muted) !important;
  font-family: var(--gr-sans);
  font-size: 11.5px;
  font-weight: 400;
  line-height: 1.85;
}

/* =========================================================
   FINAL PHASE
========================================================= */

.lg-growth-route__step--final .lg-growth-route__marker {
  color: #ffffff;
  border-color: var(--gr-forest);
  background:
    linear-gradient(
      135deg,
      var(--gr-forest) 0%,
      var(--gr-green) 100%
    );
  box-shadow:
    0 0 0 7px rgba(245, 243, 237, 0.96),
    0 12px 28px rgba(23, 76, 66, 0.18);
}

.lg-growth-route__step--final .lg-growth-route__phase {
  color: var(--gr-gold) !important;
}

.lg-growth-route__step--final
.lg-growth-route__service {
  color: #8b713f !important;
}

/* =========================================================
   TABLET
========================================================= */

@media screen and (max-width: 1100px) {
  .lg-growth-route__header {
    grid-template-columns:
      minmax(0, 0.95fr)
      minmax(0, 1.05fr);
    gap: 40px;
  }

  .lg-growth-route__range {
    display: none;
  }

  .lg-growth-route__step {
    padding-inline: 15px !important;
  }

  .lg-growth-route__content h3 {
    font-size: 16px;
  }

  .lg-growth-route__service {
    font-size: 11px;
  }

  .lg-growth-route__description {
    font-size: 10.5px;
  }
}

/* =========================================================
   VERTICAL ROUTE
========================================================= */

@media screen and (max-width: 900px) {
  .lg-growth-route {
    padding: 78px 0 82px !important;
  }

  .lg-growth-route__header {
    display: block;
    padding-bottom: 31px;
  }

  .lg-growth-route__introduction {
    max-width: 680px;
    margin-top: 22px;
  }

  .lg-growth-route__steps {
    display: block;
    padding: 38px 0 0 58px !important;
  }

  .lg-growth-route__steps::before {
    top: 38px;
    right: auto;
    bottom: 0;
    left: 20px;
    width: 2px;
    height: auto;
    background:
      linear-gradient(
        180deg,
        rgba(31, 111, 92, 0.25) 0%,
        rgba(31, 111, 92, 0.65) 63%,
        rgba(185, 154, 93, 0.78) 100%
      );
  }

  .lg-growth-route__step {
    padding: 0 0 37px !important;
    border-left: 0 !important;
  }

  .lg-growth-route__step:last-child {
    padding-bottom: 0 !important;
  }

  .lg-growth-route__marker {
    position: absolute;
    top: 0;
    left: -58px;
    width: 42px;
    height: 42px;
    margin: 0 !important;
    box-shadow:
      0 0 0 6px rgba(245, 243, 237, 0.96),
      0 9px 22px rgba(23, 76, 66, 0.08);
  }

  .lg-growth-route__marker span {
    font-size: 10px;
  }

  .lg-growth-route__content {
    padding-top: 1px;
  }

  .lg-growth-route__phase {
    margin-bottom: 5px !important;
  }

  .lg-growth-route__content h3 {
    min-height: 0;
    margin-bottom: 7px !important;
    font-size: 18px;
  }

  .lg-growth-route__service {
    min-height: 0;
    margin-bottom: 7px !important;
    font-size: 12px;
  }

  .lg-growth-route__description {
    max-width: 650px;
    font-size: 11.5px;
  }
}

/* =========================================================
   SP
========================================================= */

@media screen and (max-width: 767px) {
  .lg-growth-route {
    padding: 68px 0 72px !important;
  }

  .lg-growth-route__inner {
    width: min(calc(100% - 40px), 1180px);
  }

  .lg-growth-route__header {
    padding-bottom: 27px;
  }

  .lg-growth-route__kicker {
    margin-bottom: 13px !important;
    font-size: 8px;
  }

  .lg-growth-route__heading h2 {
    font-size: 29px;
    line-height: 1.55;
  }

  .lg-growth-route__introduction {
    margin-top: 18px;
  }

  .lg-growth-route__introduction p {
    font-size: 12px;
    line-height: 1.85;
  }

  .lg-growth-route__steps {
    padding: 32px 0 0 53px !important;
  }

  .lg-growth-route__steps::before {
    top: 32px;
    left: 18px;
  }

  .lg-growth-route__step {
    padding-bottom: 32px !important;
  }

  .lg-growth-route__marker {
    left: -53px;
    width: 38px;
    height: 38px;
  }

  .lg-growth-route__content h3 {
    font-size: 17px;
  }

  .lg-growth-route__service {
    font-size: 11.5px;
  }

  .lg-growth-route__description {
    font-size: 11px;
    line-height: 1.8;
  }
}

/* =========================================================
   2つのカード下余白｜PCのみ
========================================================= */

@media screen and (min-width: 992px) {

  /* 「その課題は、一つの施策だけでは〜」 */
  body.home .lg-issue-talk__point {
    margin-bottom: 55px !important;
  }

  /* 「サービスを導入することが目的ではなく〜」 */
  body.home .lg-concept-bridge__message {
    margin-bottom: 48px !important;
  }
}

/* =========================================================
   SNSPlus Bridge｜料金
   ========================================================= */

.home .lg-plusbridge__pricing,
.home .lg-plusbridge__pricing *,
.home .lg-plusbridge__pricing *::before,
.home .lg-plusbridge__pricing *::after {
  box-sizing: border-box;
}

.home .lg-plusbridge__pricing {
  position: relative;
  margin-top: 28px;
  padding: 40px 44px 44px;
  overflow: hidden;
  border: 1px solid var(--pb-line, rgba(31, 111, 92, 0.14));
  border-radius: 28px;
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 18px 45px rgba(23, 76, 66, 0.07);
}

/* 上部アクセントライン */
.home .lg-plusbridge__pricing::before {
  position: absolute;
  inset: 0 0 auto;
  height: 4px;
  background: linear-gradient(
    90deg,
    var(--pb-deep, #174c42),
    var(--pb-green, #1f6f5c),
    #48a533,
    #d8bd74
  );
  content: "";
}

.home .lg-plusbridge__pricing > br,
.home .lg-plusbridge__pricing > p:empty {
  display: none !important;
}

/* 見出し */
.home .lg-plusbridge__pricing-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 30px;
  padding-bottom: 25px;
  border-bottom: 1px solid var(--pb-line, rgba(31, 111, 92, 0.14));
}

.home .lg-plusbridge__pricing-en {
  margin: 0 0 8px !important;
  color: var(--pb-green, #1f6f5c);
  font-family: "Noto Sans JP", "Yu Gothic", sans-serif;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.22em;
}

.home .lg-plusbridge__pricing-header h3 {
  margin: 0 !important;
  padding: 0 !important;
  color: #24302b;
  font-family:
    "Times New Roman",
    "Yu Mincho",
    "游明朝",
    serif;
  font-size: clamp(27px, 3vw, 38px);
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: 0.035em;
}

.home .lg-plusbridge__pricing-tax {
  flex: 0 0 auto;
  margin-bottom: 4px;
  padding: 7px 16px;
  border: 1px solid var(--pb-line, rgba(31, 111, 92, 0.14));
  border-radius: 999px;
  color: #6f7e78;
  background: #fff;
  font-family: "Noto Sans JP", "Yu Gothic", sans-serif;
  font-size: 11px;
  line-height: 1.3;
}

/* 料金カード */
.home .lg-plusbridge__pricing-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 46px minmax(0, 1fr);
  gap: 16px;
  align-items: stretch;
  margin-top: 28px;
}

.home .lg-plusbridge__price-card {
  display: grid;
  align-content: center;
  min-height: 190px;
  padding: 28px 24px;
  border: 1px solid rgba(31, 111, 92, 0.15);
  border-radius: 20px;
  background:
    radial-gradient(
      circle at 8% 0%,
      rgba(72, 165, 51, 0.08),
      transparent 42%
    ),
    linear-gradient(145deg, #f6faf8, #fff);
  text-align: center;
}

.home .lg-plusbridge__price-card--monthly {
  border-color: rgba(216, 189, 116, 0.48);
  background:
    radial-gradient(
      circle at 92% 0%,
      rgba(216, 189, 116, 0.15),
      transparent 42%
    ),
    linear-gradient(145deg, #fffdf8, #fff9ea);
}

.home .lg-plusbridge__price-label {
  margin: 0 !important;
  color: #354b43;
  font-family: "Noto Sans JP", "Yu Gothic", sans-serif;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
}

.home .lg-plusbridge__price-label span {
  display: block;
  margin-bottom: 6px;
  color: var(--pb-green, #1f6f5c);
  font-size: 9px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.22em;
}

.home .lg-plusbridge__price-label strong {
  color: inherit;
  font-weight: 700;
}

.home .lg-plusbridge__price-amount {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 7px;
  margin: 17px 0 0 !important;
  color: var(--pb-deep, #174c42);
  font-family: "Noto Sans JP", "Yu Gothic", sans-serif;
  line-height: 1;
}

.home .lg-plusbridge__price-amount strong {
  color: inherit;
  font-family: Arial, Helvetica, sans-serif;
  font-size: clamp(50px, 5vw, 66px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.045em;
}

.home .lg-plusbridge__price-amount span {
  color: inherit;
  font-size: 17px;
  font-weight: 700;
}

/* 料金間のプラス */
.home .lg-plusbridge__price-plus {
  display: grid;
  align-self: center;
  justify-self: center;
  place-items: center;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(31, 111, 92, 0.17);
  border-radius: 50%;
  color: var(--pb-green, #1f6f5c);
  background: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 20px;
  font-weight: 400;
  line-height: 1;
  box-shadow: 0 8px 20px rgba(23, 76, 66, 0.06);
}

/* オプション表記 */
.home .lg-plusbridge__pricing-option {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-top: 16px;
  padding: 17px 24px;
  border: 1px solid rgba(72, 165, 51, 0.18);
  border-radius: 16px;
  background: rgba(237, 247, 234, 0.72);
  text-align: left;
}

.home .lg-plusbridge__pricing-option-mark {
  display: grid;
  flex: 0 0 34px;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  color: #fff;
  background: #48a533;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 18px;
  line-height: 1;
}

.home .lg-plusbridge__pricing-option p {
  margin: 0 !important;
  color: #354b43;
  font-family: "Noto Sans JP", "Yu Gothic", sans-serif;
  line-height: 1.5;
}

.home .lg-plusbridge__pricing-option strong {
  display: block;
  color: var(--pb-deep, #174c42);
  font-size: 14px;
  font-weight: 700;
}

.home .lg-plusbridge__pricing-option small {
  display: block;
  margin-top: 4px;
  color: #718079;
  font-size: 11px;
  font-weight: 500;
}

/* =========================================================
   SP
   ========================================================= */

@media screen and (max-width: 767px) {
  .home .lg-plusbridge__pricing {
    margin-top: 20px;
    padding: 28px 18px 20px;
    border-radius: 20px;
  }

  .home .lg-plusbridge__pricing-header {
    display: block;
    padding-bottom: 20px;
  }

  .home .lg-plusbridge__pricing-en {
    margin-bottom: 6px !important;
    font-size: 9px;
  }

  .home .lg-plusbridge__pricing-header h3 {
    font-size: 25px;
    line-height: 1.5;
  }

  .home .lg-plusbridge__pricing-tax {
    display: inline-block;
    margin-top: 12px;
    margin-bottom: 0;
    padding: 6px 13px;
    font-size: 10px;
  }

  .home .lg-plusbridge__pricing-grid {
    grid-template-columns: 1fr;
    gap: 10px;
    margin-top: 20px;
  }

  .home .lg-plusbridge__price-card {
    min-height: 158px;
    padding: 24px 16px;
    border-radius: 16px;
  }

  .home .lg-plusbridge__price-label {
    font-size: 14px;
  }

  .home .lg-plusbridge__price-amount {
    margin-top: 14px !important;
  }

  .home .lg-plusbridge__price-amount strong {
    font-size: clamp(48px, 15vw, 60px);
  }

  .home .lg-plusbridge__price-amount span {
    font-size: 15px;
  }

  .home .lg-plusbridge__price-plus {
    width: 36px;
    height: 36px;
    font-size: 17px;
  }

  .home .lg-plusbridge__pricing-option {
    align-items: flex-start;
    justify-content: flex-start;
    gap: 12px;
    margin-top: 10px;
    padding: 16px;
    border-radius: 14px;
  }

  .home .lg-plusbridge__pricing-option-mark {
    flex-basis: 30px;
    width: 30px;
    height: 30px;
    font-size: 16px;
  }

  .home .lg-plusbridge__pricing-option strong {
    font-size: 13px;
  }

  .home .lg-plusbridge__pricing-option small {
    font-size: 10px;
  }
}
/* PC：料金カード間の「＋」を完全に中央配置 */
@media screen and (min-width: 768px) {
  .home .lg-plusbridge__pricing-grid > p:has(.lg-plusbridge__price-plus) {
    display: grid !important;
    align-self: stretch !important;
    place-items: center !important;
    width: 46px !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
  }

  .home .lg-plusbridge__pricing-grid > p:has(.lg-plusbridge__price-plus) > br {
    display: none !important;
  }

  .home .lg-plusbridge__pricing-grid .lg-plusbridge__price-plus {
    display: grid !important;
    align-self: center !important;
    justify-self: center !important;
    place-items: center !important;
    position: static !important;
    width: 42px !important;
    height: 42px !important;
    margin: 0 !important;
    transform: none !important;
    line-height: 1 !important;
  }
}
