/* ============================================================
  Base: 既存CSSの上書き
============================================================ */
.wrapper{
  overflow: visible;
}

/* ============================================================
  Base: Variables
============================================================ */
:root {
  --color-main:    #b81c22;
  --color-main-dk: #9a1a24;
  --color-blue:    #005eb8;
  --color-text:    #333;
  --color-bg:      #f8f8f8;
  --color-border:  #ddd;
  --color-white:   #fff;

  --font-jp: "Noto Sans JP", sans-serif;

  /* fz: 768px基準で最大値に達するよう計算 (max ÷ 768 × 100) */
  --fz-base: clamp(12px, 1.82vw, 14px);
  --fz-sm:   clamp(11px, 1.56vw, 12px);
  --fz-lg:   clamp(15px, 2.21vw, 17px);
  --fz-xl:   clamp(18px, 2.60vw, 20px);
  --fz-2xl:  clamp(20px, 3.39vw, 26px);

  --space-xs: clamp(8px,  1.56vw, 12px);
  --space-sm: clamp(12px, 2.08vw, 16px);
  --space-md: clamp(20px, 3.65vw, 28px);
  --space-lg: clamp(32px, 6.25vw, 48px);
  --space-xl: clamp(48px, 9.38vw, 72px);

  --transition: 0.2s;
  --radius:     6px;
}
/* ============================================================
  追従ナビ高さの考慮
  --toc-height はJSで計測後にセットされる。
  初期値 0px はSP・JS未実行時のフォールバック。
============================================================ */
:root {
  --toc-height: 0px;
  scroll-padding-top: var(--toc-height);
}

@media screen and (max-width: 768px) {
  :root {
    scroll-padding-top: 0;
  }
}

/* ============================================================
  Base: html
============================================================ */
html {
  scroll-behavior: smooth;
}

/* ============================================================
  Base: .container
============================================================ */
.container {
  font-family: var(--font-jp);
  font-size: var(--fz-base);
  color: var(--color-text);
  line-height: 1.6;
}


/* ============================================================
  Layout: l_section
============================================================ */
.l_section {}
.l_section__item {}

.l_section--primary > .l_section__item + .l_section__item {
  margin-top: var(--space-xl);
}
.l_section--secondary > .l_section__item + .l_section__item {
  margin-top: var(--space-lg);
}


/* ============================================================
  Layout: l_grid
============================================================ */
.l_grid {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
}
.l_grid__item {
  display: flex;
}
.l_grid__inner {
  width: 100%;
  display: block;
}

.l_grid--hasGutterMd {
  margin: -10px;
}
.l_grid--hasGutterMd > .l_grid__item {
  padding: 10px;
}


/* ============================================================
  Module: m_hasIco（疑似要素でアイコン表現）
============================================================ */
.m_hasIco {
  position: relative;
  display: block;
  width: fit-content;
}
.m_hasIco::before,
.m_hasIco::after,
.m_hasIco__item {
  position: absolute;
  display: block;
}
.m_hasIco::before,
.m_hasIco__item {
  left: 0;
}
.m_hasIco::after {
  right: 0;
}
.m_hasIco--dot {
  padding-left: 1em;
}
.m_hasIco--dot::before {
  content: "・";
}
.m_hasIco--check {
  padding-left: 1.4em;
}
.m_hasIco--check::before {
  content: "✓";
  color: var(--color-blue);
  font-weight: 700;
}
.m_hasIco--ast {
  padding-left: 1em;
}
.m_hasIco--ast::before {
  content: "※";
}


/* ============================================================
  Module: m_btn
  m_btn が構造を定義、m_btn--main がスキンを保持
============================================================ */
.m_btn {
  display: flex;
  align-items: stretch;
}
.m_btn::before {
  content: "";
  display: block;
  width: 0;
}
.m_btn__target {
  display: flex;
  align-items: center;
  justify-content: center;
}
.m_btn__inner{}
.m_btn--center{
  justify-content: center;
}
.m_btn--main::before {
  height: 3.2em;
}
.m_btn--main .m_btn__target {
  background: var(--color-main);
  color: var(--color-white);
  font-size: var(--fz-lg);
  font-weight: 700;
  padding: 0 40px;
  border-radius: var(--radius);
  transition: background var(--transition);
}
.m_btn--main .m_btn__target:hover {
  text-decoration: none;
  background: var(--color-main-dk);
}
.m_btn--main .m_btn__inner {
  position: relative;
  padding-right: 1.2em;
}
.m_btn--main .m_btn__inner::after {
  content: "\f105";
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  display: block;
  height: 1em;
  margin: auto;
  color: var(--color-white);
  font-size: 1.2em;
  line-height: 1;
  font-family: FontAwesome;
}

@media screen and (max-width: 599px) {
  .m_btn--main .m_btn__target {
    font-size: var(--fz-base);
    padding: 0 var(--space-md);
  }
}


/* ============================================================
  Module: m_heading
============================================================ */
.m_heading {}
.m_heading__ttl {
  font-weight: 900;
  line-height: 1.4;
}
.m_heading--primary {
  margin-bottom: clamp(20px, 2.60vw, 20px);
}
.m_heading--primary .m_heading__ttl {
  font-size: var(--fz-2xl);
  padding-left: 14px;
  border-left: 5px solid var(--color-main);
}
.m_heading--secondary {
  margin-bottom: var(--space-sm);
}
.m_heading--secondary .m_heading__ttl {
  font-size: var(--fz-lg);
  padding-bottom: var(--space-xs);
  border-bottom: 1px solid var(--color-border);
}
@media screen and (max-width: 599px) {
  .m_heading--primary .m_heading__ttl {
    font-size: clamp(16px, 4.5vw, 20px);
    padding-left: 10px;
    border-left-width: 4px;
  }
}


/* ============================================================
  Module: m_list
============================================================ */
.m_list {}
.m_list__item + .m_list__item {
  margin-top: 4px;
}
.m_list--em .m_list__item {
  font-weight: 700;
  color: var(--color-main-dk);
}


/* ============================================================
  Module: m_footNote
============================================================ */
.m_footNote {
  font-size: var(--fz-sm);
  color: #777;
}


/* ============================================================
  Module: m_table
============================================================ */
.m_table {
  font-size: var(--fz-sm);
}
.m_table__head {
  background: #f0f0f0;
}
.m_table__head--red {
  background: #9c0028;
  color: var(--color-white);
}
.m_table__ttl {
  border: 1px solid var(--color-border);
  padding: 8px 10px;
  font-weight: 700;
  text-align: center;
  word-break: keep-all;
  white-space: nowrap;
}
.m_table__head--red .m_table__ttl {
  border-color: rgba(255,255,255,.2);
}
.m_table__ttl--em {
  background: #fff5f5;
  color: var(--color-main);
}
.m_table__ttl--axis {
  text-align: left;
}
.m_table__ttl--main {
  background: #fff5f5;
  color: var(--color-main);
  font-weight: 700;
}
.m_table__ttl--cont {
  background: #f5f5f5;
  text-align: left;
  vertical-align: top;
}
.m_table__data {
  border: 1px solid var(--color-border);
  padding: 8px 10px;
  vertical-align: top;
}
.m_table__body tr:nth-child(odd) {
  background: #fafafa;
}
.m_table__body tr:nth-child(even) {
  background: var(--color-white);
}
.m_table__tr--total {
  background: var(--color-white) !important;
}
.m_table__data--em {
  background: #fff5f5;
}
.m_table__data--main {
  font-weight: 700;
  color: var(--color-main);
  text-align: center;
}
.m_table__data--price {
  font-weight: 700;
  color: var(--color-main);
  white-space: nowrap;
  word-break: break-all;
  text-align: right;
}
.m_table__data--totalPrice {
  font-size: var(--fz-lg);
  font-weight: 900;
  color: var(--color-main);
  white-space: nowrap;
  word-break: break-all;
  text-align: right;
}
.m_table__note {
  font-size: var(--fz-sm);
  font-weight: 400;
  color: #666;
  display: block;
}
.m_table--w730{
  min-width: 730px;
}
.m_table--w800{
  min-width: 800px;
}
.m_table--compare{}
.m_table--compare .m_table__data{
  text-align: center;
  vertical-align: middle;
}
.m_table--compare .m_table__data--main,
.m_table--compare .m_table__ttl--main {
  padding: 8px 20px;
  border-left:  2px solid var(--color-main);
  border-right: 2px solid var(--color-main);
  border-top: none;
  border-bottom: none;
  background: var(--color-white);
}
.m_table--compare thead .m_table__ttl--main {
  border-top: 2px solid var(--color-main);
  border-bottom: 2px solid var(--color-main);
  background: #fef2f2;
}
.m_table--compare tbody tr:last-child .m_table__data--main {
  border-bottom: 2px solid var(--color-main);
}
.m_table--price{}
/* ============================================================
  Module: m_gapTable（m_tableのラッパー ※m_tableとセットで使う）
============================================================ */
.m_gapTable {}
.m_gapTable__heading {}
.m_gapTable__ttl {
  font-size: var(--fz-base);
  font-weight: 700;
  text-align: center;
  background: #f5f5f5;
  border: 1px solid var(--color-border);
  padding: 8px;
}
.m_gapTable__body {
  overflow-x: auto;
}


/* ============================================================
  Module: m_compareTable（m_tableのラッパー ※m_tableとセットで使う）
============================================================ */
.m_compareTable {}
.m_compareTable__body {
  overflow-x: auto;
}
/* __footerは上に要素が必ず来るためmargin-top許容 */
.m_compareTable__footer {
  margin-top: 10px;
}


/* ============================================================
  Module: m_priceTable（m_tableのラッパー ※m_tableとセットで使う）
============================================================ */
.m_priceTable {
  border-radius: var(--radius);
  overflow: hidden;
}
.m_priceTable__body {
  overflow-x: auto;
}

/* MTにてテンプレートに埋め込まれていたので対応 */
h1{
  margin-bottom: var(--space-md);
  line-height: 0;
  text-align: center;
}
h1 img{
  max-width: 100%;
  height: auto;
}



/* ============================================================
  Module: m_toc
============================================================ */
.m_toc {
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  padding: var(--space-xs) var(--space-md);
}
.m_toc__heading {
  margin-bottom: var(--space-xs);
}
.m_toc__ttl {
  position: relative;
  padding-left: 30px;
  font-size: var(--fz-lg);
  font-weight: 700;
}
.m_toc__ttl::before {
  content: "\f03a";
  position: absolute;
  left: 0;
  top: 50%;
  display: block;
  color: var(--color-main);
  line-height: 1;
  font-weight: normal;
  font-size: 22px;
  font-family: FontAwesome;
  transform: translateY(-50%);
}
.m_toc__list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px 24px;
}
.m_toc__item {}
.m_toc__link {
  color: var(--color-blue);
  font-size: var(--fz-sm);
  font-weight: 500;
  transition: opacity var(--transition);
}
.m_toc__link:hover {
  opacity: 0.7;
  text-decoration: underline;
}
.m_toc__num{
  color: var(--color-main);
  font-weight: 700;
  margin-right: 4px;
}

@media screen and (max-width: 768px) {
  .m_toc {
    position: static;
  }
}

@media screen and (max-width: 599px) {
  .m_toc__list {
    grid-template-columns: 1fr;
  }
}


/* ============================================================
  Module: 問題点（m_issueCard、m_riskBox）のラッパー
============================================================ */
.m_issueWrap{}
.m_issueWrap__item{}
.m_issueWrap__item + .m_issueWrap__item{
  position: relative;
  margin-top: var(--space-md);
  padding-top: var(--space-md);
}
.m_issueWrap__item + .m_issueWrap__item::before{
  content: "\f107";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  display: block;
  width: 1em;
  margin: auto;
  line-height: 1;
  font-weight: normal;
  font-size: 40px;
  font-family: FontAwesome;
  transform: translateY(-50%);
}

/* ============================================================
  Module: m_issueCard
============================================================ */
.m_issueCard {
  border-radius: var(--radius);
  padding: var(--space-md);
}
.m_issueCard__heading {
  margin-bottom: var(--space-sm);
  padding-bottom: var(--space-xs);
  border-bottom: 1px solid;
}
.m_issueCard__ttl {
  position: relative;
  padding-left: 28px;
  font-size: var(--fz-base);
  font-weight: 700;
}
.m_issueCard__ttl::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  display: block;
  line-height: 1;
  font-weight: normal;
  font-size: 20px;
  font-family: FontAwesome;
  transform: translateY(-50%);
}
.m_issueCard__body {}
.m_issueCard--problem {
  background: #fff5f5;
  border: 1px solid #fbd5d5;
}
.m_issueCard--problem .m_issueCard__heading {
  border-color: #fbd5d5;
}
.m_issueCard--problem .m_issueCard__ttl {
  color: var(--color-main);
}
.m_issueCard--problem .m_issueCard__ttl::before {
  content: "\f071";
}
.m_issueCard--essence {
  background: #f0f5ff;
  border: 1px solid #c7d9f7;
}
.m_issueCard--essence .m_issueCard__heading {
  border-color: #c7d9f7;
}
.m_issueCard--essence .m_issueCard__ttl {
  color: var(--color-blue);
}
.m_issueCard--essence .m_issueCard__ttl::before {
  content: "\f002";
}

/* ============================================================
  Module: m_riskBox
============================================================ */
.m_riskBox {
  background: #1f2937;
  color: var(--color-white);
  border-radius: var(--radius);
  padding: var(--space-md) var(--space-lg);
}
.m_riskBox__ttl {
  font-size: var(--fz-base);
  font-weight: 700;
  color: #fde68a;
  text-align: center;
  margin-bottom: var(--space-sm);
}
.m_riskBox__body {}
.m_riskBox__tags {
  display: flex;
  justify-content: center;
  gap: var(--space-sm);
  flex-wrap: wrap;
}
.m_riskBox__tag {
  background: #374151;
  padding: 4px 8px;
  border-radius: var(--radius);
  font-size: var(--fz-base);
  font-weight: 500;
}
/* __tagsの下に必ず__msgが来るため隣接セレクタで管理 */
.m_riskBox__tags + .m_riskBox__msg {
  margin-top: var(--space-sm);
}
.m_riskBox__msg {
  font-size: var(--fz-base);
  line-height: 1.8;
  color: #e5e5e5;
  border-top: 1px solid #555;
  padding-top: var(--space-sm);
  text-align: center;
}
.m_riskBox__txtEm {
  color: var(--color-white);
  font-weight: 700;
}

@media screen and (max-width: 599px) {
  .m_riskBox {
    padding: var(--space-md);
  }
}


/* ============================================================
  Module: m_serviceIntro
============================================================ */
.m_serviceIntro {}
.m_serviceIntro__body {
  padding-inline: var(--space-lg);
}
.m_serviceIntro__catch {
  font-size: var(--fz-xl);
  font-weight: 900;
  line-height: 1.8;
}
/* __catchの下に必ず__msgが来るため隣接セレクタで管理 */
.m_serviceIntro__catch + .m_serviceIntro__msg {
  margin-top: var(--space-sm);
}
.m_serviceIntro__msg {
  font-size: var(--fz-lg);
  color: #555;
}


/* ============================================================
  Module: m_featureList（m_featureCardのラッパー ※m_featureCardとセットで使う）
============================================================ */
.m_featureList {}
.m_featureList__heading {
  margin-bottom: var(--space-md);
  text-align: center;
}
.m_featureList__ttl {
  font-size: var(--fz-lg);
  font-weight: 700;
}
.m_featureList__ttlEm {
  color: var(--color-main);
}
.m_featureList__body {}


/* ============================================================
  Module: m_featureCard
============================================================ */
.m_featureCard {
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  padding: var(--space-md);
  background: var(--color-white);
  transition: box-shadow var(--transition);
}
.m_featureCard:hover {
  box-shadow: 0 4px 12px rgba(0,0,0,.1);
}
.m_featureCard__inner{
  position: relative;
  padding-left: 58px;
}
.m_featureCard__inner::before{
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  flex-shrink: 0;
}
.m_featureCard__inner::after{
  content: "";
  position: absolute;
  top: 22px;
  left: 22px;
  display: block;
  font-size: 20px;
  line-height: 1;
  font-weight: normal;
  font-family: FontAwesome;
  transform: translate(-50%, -50%);
}
.m_featureCard--red .m_featureCard__inner::before { background: #ffe4e4; }
.m_featureCard--blue .m_featureCard__inner::before { background: #dceeff; }
.m_featureCard--green .m_featureCard__inner::before { background: #d9f5e8; }
.m_featureCard--purple .m_featureCard__inner::before { background: #ede9ff; }
.m_featureCard--red .m_featureCard__inner::after {
  content: "\f086";
  color: #b81c22;
}
.m_featureCard--blue .m_featureCard__inner::after {
  content: "\f200";
  color: #005eb8; 
}
.m_featureCard--green .m_featureCard__inner::after {
  content: "\f013";
  color: #15803d;
}
.m_featureCard--purple .m_featureCard__inner::after {
  content: "\f201";
  color:#7e22ce;
}
.m_featureCard__ttl {
  font-size: var(--fz-base);
  font-weight: 700;
  margin-bottom: 6px;
}
.m_featureCard__body {}
.m_featureCard__msg {
  font-size: var(--fz-sm);
  color: #555;
}


/* ============================================================
  Module: m_beforeAfterWrap（m_beforeAfterのラッパー ※m_beforeAfterとセットで使う）
============================================================ */
.m_beforeAfterWrap {}
.m_beforeAfterWrap__item {}
.m_beforeAfterWrap__item + .m_beforeAfterWrap__item{
  position: relative;
  margin-top: var(--space-md);
  padding-top: var(--space-md);
}
.m_beforeAfterWrap__item + .m_beforeAfterWrap__item::before{
  content: "\f063";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  display: block;
  width: 1em;
  margin: auto;
  color: var(--color-main);
  line-height: 1;
  font-weight: normal;
  font-size: 24px;
  font-family: FontAwesome;
  transform: translateY(-50%);
}



/* ============================================================
  Module: m_beforeAfter
============================================================ */
.m_beforeAfter {
  display: flex;
  border-radius: var(--radius);
  overflow: hidden;
  border: 1px solid var(--color-border);
}
.m_beforeAfter--before {}
.m_beforeAfter--after {
  border: 2px solid var(--color-main);
  box-shadow: 0 2px 8px rgba(184,28,34,.15);
}
.m_beforeAfter__heading {
  width: 120px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: var(--space-sm);
  background: #e5e5e5;
  color: #555;
}
.m_beforeAfter--after .m_beforeAfter__heading {
  background: var(--color-main);
  color: var(--color-white);
}
.m_beforeAfter__ttl {
  color: inherit;
  font-size: var(--fz-base);
  font-weight: 700;
}
.m_beforeAfter__subTtl {
  font-size: var(--fz-sm);
}
.m_beforeAfter__body {
  flex: 1;
  padding: var(--space-md);
  background: #fafafa;
  font-size: var(--fz-sm);
}
.m_beforeAfter--after .m_beforeAfter__body {
  background: #fff5f5;
}
.m_beforeAfter__ref {
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  padding: var(--space-xs) var(--space-sm);
  margin-top: var(--space-sm);
  font-size: var(--fz-sm);
  color: #666;
}
.m_beforeAfter__ref--after {
  border-color: #f5c6c6;
  color: var(--color-main-dk);
}
.m_beforeAfter__refTtl {
  font-weight: 700;
  margin-bottom: 4px;
}
.m_beforeAfter__txtEm {
  font-size: 1.2em;
  font-weight: 700;
  color: var(--color-main);
}

@media screen and (max-width: 599px) {
  .m_beforeAfter {
    flex-direction: column;
  }
  .m_beforeAfter__heading {
    width: 100%;
    flex-direction: row;
    justify-content: flex-start;
    gap: 8px;
    padding: var(--space-xs) var(--space-sm);
  }
}


/* ============================================================
  Module: m_kpiGrid（m_kpiCardのラッパー ※m_kpiCardとセットで使う）
============================================================ */
.m_kpiGrid {}
.m_kpiGrid__body {}


/* ============================================================
  Module: m_kpiCard
============================================================ */
.m_kpiCard {
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: var(--color-white);
  padding: var(--space-sm);
  text-align: center;
}
.m_kpiCard__label {
  font-size: var(--fz-sm);
  color: #666;
  min-height: 2.8em;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 6px;
}
.m_kpiCard__num {
  font-size: clamp(18px, 2.34vw, 18px);
  font-weight: 900;
  color: var(--color-main);
}
.m_kpiCard__num--blue {
  color: var(--color-blue);
}
.m_kpiCard__unit {
  font-size: var(--fz-sm);
  font-weight: 400;
}
.m_kpiCard__txt {
  font-size: var(--fz-base);
  font-weight: 700;
}
.m_kpiCard__txt--blue{
  color: var(--color-blue);
}
.m_kpiCard__note {
  font-size: var(--fz-sm);
  font-weight: 400;
  display: block;
  color: #777;
}


/* ============================================================
  Module: m_meritTable（m_meritのラッパー ※m_meritとセットで使う）
============================================================ */
.m_meritTable {}
.m_meritTable__ttl::before {
  content: "";
  display: block;
  width: 6px;
  height: 18px;
  background: var(--color-text);
  flex-shrink: 0;
}
.m_meritTable__body {}
.m_meritTable__list {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.m_meritTable__item {}


/* ============================================================
  Module: m_merit
============================================================ */
.m_merit {
  display: flex;
  border: 1px solid #fbe8e8;
  border-radius: var(--radius);
  overflow: hidden;
}
.m_merit__term {
  width: 140px;
  flex-shrink: 0;
  background: #fff5f5;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--fz-base);
  font-weight: 700;
  padding: var(--space-sm);
}
.m_merit__desc {
  flex: 1;
  background: var(--color-white);
  padding: var(--space-sm);
  font-size: var(--fz-sm);
  color: #555;
}

@media screen and (max-width: 599px) {
  .m_merit {
    flex-direction: column;
  }
  .m_merit__term {
    width: 100%;
    justify-content: flex-start;
    padding: var(--space-xs) var(--space-sm);
  }
}


/* ============================================================
  Module: m_stepWrap（m_stepのラッパー ※m_stepとセットで使う）
============================================================ */
.m_stepWrap {}
.m_stepWrap__body {
  display: flex;
  flex-direction: column;
}
.m_stepWrap__item {}
.m_stepWrap__item + .m_stepWrap__item {
  margin-top: var(--space-lg);
}


/* ============================================================
  Module: m_step
============================================================ */
.m_step {}
.m_step__heading {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  border-bottom: 2px solid var(--color-main);
  padding-bottom: var(--space-xs);
  margin-bottom: var(--space-md);
}
.m_step__num {
  width: 40px;
  height: 40px;
  background: var(--color-main);
  color: var(--color-white);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  font-weight: 900;
  flex-shrink: 0;
}
.m_step__ttl {
  font-size: var(--fz-xl);
  font-weight: 700;
}
.m_step__body {}
.m_step__item + .m_step__item {
  margin-top: var(--space-md);
}
.m_step__txt {
  font-size: var(--fz-base);
  color: #444;
}

@media screen and (max-width: 599px) {
  .m_step__ttl {
    font-size: var(--fz-lg);
  }
  .m_step__num {
    width: 32px;
    height: 32px;
    font-size: 16px;
  }
}


/* ============================================================
  Module: m_interviewWrap（m_interviewのラッパー ※m_interviewとセットで使う）
============================================================ */
.m_interviewWrap {}
.m_interviewWrap__heading {
  display: flex;
  margin-bottom: var(--space-xs);
  padding-left: calc(var(--space-sm) + 60px);
}
.m_interviewWrap__ttl {
  font-size: var(--fz-base);
  font-weight: 700;
  color: #666;
  text-align: center;
}
.m_interviewWrap__body {
  display: flex;
  flex-direction: column;
}
.m_interviewWrap__item {}
.m_interviewWrap__item + .m_interviewWrap__item {
  margin-top: var(--space-md);
}

@media screen and (max-width: 768px) {
  .m_interviewWrap__heading {
    display: none;
  }
}


/* ============================================================
  Module: m_interview（m_interviewContのラッパー ※m_interviewContとセットで使う）
============================================================ */
.m_interview {
  display: flex;
  gap: var(--space-sm);
  align-items: flex-start;
}
.m_interview__person {
  position: relative;
  width: 60px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-top: var(--space-sm);
  gap: 6px;
}
.m_interview__person::before {
  content: "";
  display: block;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #ccc;
}
.m_interview__person::after {
  content: "\f007";
  position: absolute;
  top: calc(var(--space-sm) + 20px);
  left: 0; 
  right: 0;
  display: block;
  width: 1em;
  margin: auto;
  font-size: 24px;
  text-align: center;
  line-height: 1;
  font-family: FontAwesome;
  transform: translateY(-50%);
}
.m_interview__person--president {
  color: #be2a4b;
}
.m_interview__person--president::before {
  background: #fce4ec;
}
.m_interview__person--manager {
  color: #b07d10;
}
.m_interview__person--manager::before {
  background: #fff8e1;
}
.m_interview__name {
  font-size: var(--fz-sm);
  font-weight: 700;
  text-align: center;
}
.m_interview__body {
  flex: 1;
  display: flex;
  gap: var(--space-lg);
}
.m_interview__item {
  flex: 1;
  border: 2px solid var(--color-border);
  border-radius: var(--radius);
  padding: var(--space-sm);
  background: var(--color-white);
  font-size: var(--fz-sm);
}
.m_interview__item + .m_interview__item {
  position: relative;
}
.m_interview__item + .m_interview__item::before {
  content: "\f0da";
  position: absolute;
  left: calc(-1 * var(--space-sm) / 2);
  top: 50%;
  transform: translateY(-50%);
  font-size: 40px;
  line-height: 1;
  font-family: FontAwesome;
  transform: translate(-150%, -50%);
}
.m_interview__person--president ~ .m_interview__body .m_interview__item:first-child {
  border-color: #f5c6d8;
}
.m_interview__person--manager ~ .m_interview__body .m_interview__item:first-child {
  border-color: #f0d080;
}
.m_interview__person--president ~ .m_interview__body .m_interview__item + .m_interview__item::before {
  color: #f5c6d8;
}
.m_interview__person--manager ~ .m_interview__body .m_interview__item + .m_interview__item::before {
  color: #f0d080;
}
@media screen and (max-width: 768px) {
  .m_interview {
    flex-wrap: wrap;
  }
  .m_interview__person {
    width: 100%;
    flex-direction: row;
    padding-top: 0;
    justify-content: flex-start;
  }
  .m_interview__person::after {
    top: 20px;
    left: 20px;
    margin: 0;
    transform: translate(-50%, -50%)
  }
  .m_interview__body {
    flex-direction: column;
    width: 100%;
    flex: none;
  }
  .m_interview__item + .m_interview__item::before {
    display: none;
  }
}


/* ============================================================
  Module: m_interviewCont
============================================================ */
.m_interviewCont {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}
.m_interviewCont__item {}
.m_interviewCont__ttl {
  font-size: var(--fz-sm);
  font-weight: 700;
  margin-bottom: 4px;
}
.m_interviewCont--report .m_interviewCont__ttl {
  color: #555;
}
.m_interviewCont__body {}


/* ============================================================
  Module: m_questionCard
============================================================ */
.m_questionCard {
  background: #f8f9fa;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  padding: var(--space-lg);
  max-width: 500px;
  margin-inline: auto;
}
.m_questionCard__ttl {
  text-align: center;
  font-size: var(--fz-lg);
  font-weight: 400;
  color: #666;
  letter-spacing: .5em;
  margin-bottom: var(--space-md);
  padding-bottom: var(--space-sm);
  border-bottom: 2px solid var(--color-border);
}
.m_questionCard__list {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}
.m_questionCard__item {
  display: flex;
  align-items: flex-start;
  gap: var(--space-sm);
}
.m_questionCard__num {
  font-size: var(--fz-lg);
  font-weight: 700;
  color: #a42b49;
  width: 72px;
  flex-shrink: 0;
}
.m_questionCard__txt {
  font-size: var(--fz-base);
  color: #555;
  padding-top: 2px;
}

@media screen and (max-width: 599px) {
  .m_questionCard {
    padding: var(--space-md);
    max-width: 100%;
  }
}


/* ============================================================
  Module: m_careerMapWrap（m_careerMapのラッパー ※m_careerMapとセットで使う）
============================================================ */
.m_careerMapWrap {
  border: 2px solid var(--color-border);
  border-radius: var(--radius);
  padding: var(--space-md);
  background: var(--color-white);
}
.m_careerMapWrap__heading {
  margin-bottom: var(--space-sm);
}
.m_careerMapWrap__ttl {
  font-size: var(--fz-base);
  font-weight: 700;
}
.m_careerMapWrap__inner {}
.m_careerMapWrap__summary {
  font-size: var(--fz-sm);
  font-weight: 700;
  color: #444;
  border-left: 4px solid #aaa;
  background: #f5f5f5;
  padding: var(--space-sm);
  border-radius: 0 var(--radius) var(--radius) 0;
}
/* __summaryの下に必ず__bodyが来るため隣接セレクタで管理 */
.m_careerMapWrap__summary + .m_careerMapWrap__body {
  margin-top: var(--space-sm);
}
.m_careerMapWrap__body {}
.m_careerMapWrap__item {}
.m_careerMapWrap__item + .m_careerMapWrap__item{
  position: relative;
  margin-top: var(--space-md);
  padding-top: var(--space-md);
}
.m_careerMapWrap__item + .m_careerMapWrap__item::before{
  content: "\f0d7";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  display: block;
  width: 1em;
  margin: auto;
  color: #aaa;
  line-height: 1;
  text-align: center;
  font-weight: normal;
  font-size: 40px;
  font-family: FontAwesome;
  transform: translateY(-50%);
}


/* ============================================================
  Module: m_careerMap
============================================================ */
.m_careerMap {
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  overflow: hidden;
}
.m_careerMap--result {
  border-color: #f5c6c6;
}
.m_careerMap__heading {
  background: #555;
  padding: 6px 14px;
}
.m_careerMap--result .m_careerMap__heading {
  background: var(--color-main);
}
.m_careerMap__ttl {
  position: relative;
  padding-left: 1.5em;
  font-size: var(--fz-sm);
  font-weight: 700;
  color: var(--color-white);
}
.m_careerMap__ttl::before{
  content: "\f007";
  position: absolute;
  left: 0;
  display: block;
  color: var(--color-white);
  font-weight: normal;
  font-family: FontAwesome;
}
.m_careerMap__body {
  padding: var(--space-sm) var(--space-md);
  background: var(--color-white);
}
.m_careerMap__cont {
  display: flex; 
  justify-content: center;
  align-items: stretch;  
  margin-inline: calc(-1 * var(--space-md));
}
.m_careerMap__item {
  display: flex;
  width: 40%;
  padding-inline: var(--space-md);
}
.m_careerMap__item + .m_careerMap__item{
  position: relative;
}
.m_careerMap__item + .m_careerMap__item::before{
  content: "\f067";
  position: absolute;
  left: 0;
  top: 50%;
  display: block;
  color: #aaa;
  text-align: center;
  line-height: 1;
  font-weight: normal;
  font-size: 22px;
  font-family: FontAwesome;
  transform: translate(-50%, -50%);
}

.m_careerMap__inner{
  width: fit-content;
  margin: auto;
}

.m_careerMap--result .m_careerMap__ttl::before{
  content: "\f1ad";
}
.m_careerMap--result .m_careerMap__body {
  background: #fff5f5;
  justify-content: center;
}

.m_careerMap__txt {
  font-size: var(--fz-lg);
  font-weight: 700;
  color: var(--color-main-dk);
}

@media screen and (max-width: 599px) {
  .m_careerMap__cont {
    display: block;
    margin: 0;
  }
  .m_careerMap__item {
    width: 100%;
    padding-inline: 0;
  }
  .m_careerMap__item + .m_careerMap__item{
    margin-top: var(--space-md);
    padding-top: var(--space-md);
  }
  .m_careerMap__item + .m_careerMap__item::before{
    top: 0;
    left: 50%;
    transform: translate(-50%, -50%);
  }
}


/* ============================================================
  Module: m_tagGroup
============================================================ */
.m_tagGroup {}
.m_tagGroup__label {
  font-size: var(--fz-sm);
  font-weight: 700;
  color: #555;
  text-align: center;
  margin-bottom: 6px;
}
.m_tagGroup__label--yellow{
  color: #7a6000;
}
.m_tagGroup__label--blue{
  color: #1a4a7a;
}
.m_tagGroup__list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.m_tagGroup__list--center{
  justify-content: center;
}
.m_tagGroup__item {
  font-size: var(--fz-sm);
  padding: 4px 12px;
  border-radius: 100px;
  border: 1px solid var(--color-border);
  background: #f5f5f5;
  color: #444;
}
.m_tagGroup__item--yellow {
  background: #fef9e4;
  border-color: #f6e48a;
  color: #7a6000;
}
.m_tagGroup__item--blue {
  background: #dceeff;
  border-color: #a5c8f5;
  color: #1a4a7a;
}


/* ============================================================
  Module: m_measureList（m_measureのラッパー ※m_measureとセットで使う）
============================================================ */
.m_measureList {
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  padding: var(--space-md);
  background: var(--color-white);
}
.m_measureList__heading {
  margin-bottom: var(--space-md);
}
.m_measureList__ttl {
  font-size: var(--fz-base);
  font-weight: 700;
  color: var(--color-main);
  padding-bottom: var(--space-xs);
  border-bottom: 1px solid var(--color-border);
}
.m_measureList__body {}
.m_measureList__list {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  counter-reset: measure;
}
.m_measureList__item {}
/* __badgesは上に要素が必ず来るためmargin-top許容 */
.m_measureList__badges {
  display: flex;
  gap: var(--space-sm);
  justify-content: center;
  flex-wrap: wrap;
  border-top: 1px solid var(--color-border);
  padding-top: var(--space-sm);
  margin-top: var(--space-sm);
}
.m_measureList__badge {
  font-size: var(--fz-sm);
  font-weight: 700;
  color: var(--color-blue);
}


/* ============================================================
  Module: m_measure
============================================================ */
.m_measure {
  position: relative;
  padding-left: 36px;
  counter-increment: measure;
}
.m_measure::before {
  content: counter(measure);
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 28px;
  height: 28px;
  background: #555;
  color: var(--color-white);
  border-radius: var(--radius);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: var(--fz-base);
}
.m_measureList__list .m_measure:nth-child(1)::before { background: #222; }
.m_measureList__list .m_measure:nth-child(2)::before { background: #333; }
.m_measureList__list .m_measure:nth-child(3)::before { background: #444; }
.m_measureList__list .m_measure:nth-child(4)::before { background: #555; }
.m_measureList__list .m_measure:nth-child(5)::before { background: #777; }
.m_measure__ttl {
  font-size: var(--fz-base);
  font-weight: 700;
  color: var(--color-text);
  margin-bottom: 8px;
}
/* m_measure__bodyはm_tagGroupとMixesするためスタイルはm_tagGroup側に委譲 */
.m_measure__body {}


/* ============================================================
  Module: m_kpiVerifyWrap（m_kpiVerifyのラッパー ※m_kpiVerifyとセットで使う）
============================================================ */
.m_kpiVerifyWrap {}
.m_kpiVerifyWrap__heading {
  margin-bottom: var(--space-sm);
}
.m_kpiVerifyWrap__ttl {
  font-size: var(--fz-base);
  font-weight: 700;
  background: #f5f5f5;
  border: 1px solid var(--color-border);
  padding: 6px 12px;
  border-radius: var(--radius);
  text-align: center;
}
.m_kpiVerifyWrap__body {}
.m_kpiVerifyWrap__list {
  display: flex;
  flex-direction: column;
  counter-reset: kpiVerify;
}
.m_kpiVerifyWrap__item {}
.m_kpiVerifyWrap__item + .m_kpiVerifyWrap__item {
  margin-top: 8px;
}


/* ============================================================
  Module: m_kpiVerify
============================================================ */
.m_kpiVerify {
  display: flex;
  align-items: flex-start;
  gap: var(--space-sm);
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  padding: var(--space-xs) var(--space-sm);
  counter-increment: kpiVerify;
}
.m_kpiVerify::before {
  content: counter(kpiVerify);
  width: 24px;
  height: 24px;
  background: var(--color-main);
  color: var(--color-white);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--fz-sm);
  font-weight: 700;
  flex-shrink: 0;
}
.m_kpiVerify__inner {}
.m_kpiVerify__ttl {
  font-size: var(--fz-base);
  font-weight: 700;
  margin-bottom: 2px;
}
.m_kpiVerify__msg {
  font-size: var(--fz-sm);
  color: #666;
}


/* ============================================================
  Module: m_matrixWrap（m_matrixのラッパー ※m_matrixとセットで使う）
============================================================ */
.m_matrixWrap {
  background: #f5f5f5;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  padding: var(--space-sm);
}
.m_matrixWrap__heading {
  margin-bottom: var(--space-sm);
  text-align: center;
}
.m_matrixWrap__ttl {
  font-size: var(--fz-sm);
  font-weight: 700;
  color: #555;
}
.m_matrixWrap__body {}
.m_matrixWrap__chart {
  position: relative;
  width: fit-content;
  margin: auto;
  padding: 20px 0 20px 20px;
}
.m_matrixWrap__axisX {
  font-size: var(--fz-sm);
  color: #888;
  text-align: center;
}
.m_matrixWrap__axisY {
  font-size: var(--fz-sm);
  color: #888;
  position: absolute;
  left: 0;
  top: 50%;
  transform-origin: top center;
  transform: translate(-50%, 50%) rotate(-90deg);
  white-space: nowrap;
}
.m_matrixWrap__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 2px;
  width: 220px;
  height: 220px;
  margin-inline: auto;
  border-left: 2px solid #aaa;
  border-bottom: 2px solid #aaa;
}


/* ============================================================
  Module: m_matrix
============================================================ */
.m_matrix {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-radius: 2px;
  padding: 4px;
  text-align: center;
}
.m_matrix--mismatch { background: #fef9c3; border: 1px solid #fde68a; }
.m_matrix--overlap  { background: #ffe4e4; border: 1px solid #fca5a5; }
.m_matrix--unused   { background: #e5e7eb; border: 1px solid #d1d5db; }
.m_matrix--self     { background: #dbeafe; border: 1px solid #93c5fd; }
.m_matrix__msg {
  font-size: var(--fz-sm);
  font-weight: 700;
}
.m_matrix--overlap .m_matrix__msg { color: var(--color-main); }
.m_matrix--self    .m_matrix__msg { color: var(--color-blue); }
.m_matrix__subMsg {
  font-size: 10px;
  color: #666;
}

@media screen and (max-width: 599px) {
  .m_matrixWrap__grid {
    width: 180px;
    height: 180px;
  }
}


/* ============================================================
  Module: m_timelineList（m_timelineのラッパー ※m_timelineとセットで使う）
============================================================ */
.m_timelineList {}
.m_timelineList__lead {
  font-size: var(--fz-base);
}
/* __leadの下に必ず__listが来るとは限らないため隣接セレクタで管理 */
.m_timelineList__lead + .m_timelineList__list {
  margin-top: var(--space-md);
}
.m_timelineList__list {
  position: relative;
  padding-left: var(--space-lg);
  border-left: 2px solid var(--color-main);
  display: flex;
  flex-direction: column;
}
.m_timelineList__item {}
.m_timelineList__item + .m_timelineList__item {
  margin-top: var(--space-md);
}


/* ============================================================
  Module: m_timeline
============================================================ */
.m_timeline {
  position: relative;
}
.m_timeline::before {
  content: "";
  position: absolute;
  left: calc(-1 * var(--space-lg) - 7px);
  top: 4px;
  width: 14px;
  height: 14px;
  background: var(--color-main);
  border-radius: 50%;
}
.m_timeline--verify::before {
  background: #aaa;
}
.m_timeline__label {
  font-size: var(--fz-base);
  font-weight: 700;
  color: var(--color-main);
  margin-bottom: 4px;
}
.m_timeline--verify .m_timeline__label {
  color: #666;
}
.m_timeline__msg {
  font-size: var(--fz-sm);
  color: #555;
  background: #f5f5f5;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  padding: var(--space-sm);
}
.m_timeline--verify .m_timeline__msg {
  background: #ebebeb;
}


/* ============================================================
  Module: m_faqList（m_faqのラッパー ※m_faqとセットで使う）
============================================================ */
.m_faqList {
  display: flex;
  flex-direction: column;
}
.m_faqList__item {}
.m_faqList__item + .m_faqList__item {
  margin-top: var(--space-sm);
}


/* ============================================================
  Module: m_faq
============================================================ */
.m_faq {
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--color-white);
}
.m_faq__q {
  display: flex;
  align-items: flex-start;
  gap: var(--space-xs);
  padding: var(--space-sm) var(--space-md);
  font-size: var(--fz-base);
  font-weight: 700;
  background: #f5f5f5;
}
.m_faq__qNum {
  color: var(--color-main);
  font-size: var(--fz-lg);
  line-height: 1;
  flex-shrink: 0;
}
.m_faq__a {
  display: flex;
  align-items: flex-start;
  gap: var(--space-xs);
  padding: var(--space-sm) var(--space-md);
  font-size: var(--fz-sm);
  color: #555;
  border-top: 1px solid var(--color-border);
  line-height: 1.8;
}
.m_faq__aNum {
  color: var(--color-blue);
  font-size: var(--fz-lg);
  font-weight: 700;
  line-height: 1;
  flex-shrink: 0;
}

/* ============================================================
  Module: m_usageCaseWrap（m_usageCaseのラッパー ※m_usageCaseとセットで使う）
============================================================ */
.m_usageCaseWrap {}
.m_usageCaseWrap__body {
  padding: var(--space-md);
  border: 1px solid #e5e7eb;
  border-radius: var(--radius);
  background: #f9fafb;
}
.m_usageCaseWrap__item {}
.m_usageCaseWrap__item + .m_usageCaseWrap__item {
  position: relative;
  margin-top: var(--space-md);
  padding-top: var(--space-md);
}
.m_usageCaseWrap__item + .m_usageCaseWrap__item::before {
  content: "\f063";
  position: absolute;
  right: 0;
  left: 0;
  top: 0;
  display: block;
  width: 1em;
  margin: auto;
  color: #aaa;
  text-align: center;
  line-height: 1;
  font-weight: normal;
  font-size: 30px;
  font-family: FontAwesome;
  transform: translateY(-50%);
}

/* ============================================================
  Module: m_usageCase（m_usageCaseCardのラッパー ※m_usageCaseCardとセットで使う）
============================================================ */
.m_usageCase {
  display: flex;
  flex-wrap: wrap;
  margin-inline: calc(-1 * var(--space-md));
}
.m_usageCase__item {
  display: flex;
  width: 50%;
  padding-inline: var(--space-md);
}
.m_usageCase__item + .m_usageCase__item {
  position: relative;
}
.m_usageCase__item + .m_usageCase__item::before {
  content: "\f067";
  position: absolute;
  left: 0;
  top: 50%;
  display: block;
  color: #aaa;
  text-align: center;
  line-height: 1;
  font-weight: normal;
  font-size: 30px;
  font-family: FontAwesome;
  transform: translate(-50%, -50%);
}
.m_usageCase__inner{
  width: 100%;
}
@media screen and (max-width: 599px){
  .m_usageCase {
    display: block;
    margin-inline: 0;
  }
  .m_usageCase__item {
    width: 100%;
    padding-inline: 0;
  }
  .m_usageCase__item + .m_usageCase__item{
    margin-top: var(--space-md);
    padding-top: var(--space-md);
  }
  .m_usageCase__item + .m_usageCase__item::before{
    top: 0;
    left: 50%;
    transform: translate(-50%, -50%);
  }
}


/* ============================================================
  Module: m_usageCaseCard
============================================================ */
.m_usageCaseCard {
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  padding: var(--space-md);
  background: var(--color-white);
}
.m_usageCaseCard--blue {
  border-color: #93c5fd;
}
.m_usageCaseCard--red {
  border-color: #fca5a5;
}
.m_usageCaseCard__heading {
  margin-bottom: var(--space-sm);
}
.m_usageCaseCard__ttl {
  text-align: center;
  font-size: var(--fz-base);
  font-weight: 700;
  margin-bottom: 6px;
}
.m_usageCaseCard--blue .m_usageCaseCard__ttl { color: var(--color-blue); }
.m_usageCaseCard--red  .m_usageCaseCard__ttl { color: var(--color-main); }
.m_usageCaseCard__body {}
.m_usageCaseCard__badge {
  display: block;
  width: fit-content;
  margin: auto;
  font-size: var(--fz-sm);
  padding: 2px 10px;
  border-radius: 100px;
  font-weight: 700;
}
.m_usageCaseCard--blue .m_usageCaseCard__badge { background: #dbeafe; color: var(--color-blue); }
.m_usageCaseCard--red  .m_usageCaseCard__badge { background: #ffe4e4; color: var(--color-main); }

/* ============================================================
  Module: m_usageResult（m_usageCaseの結果 ※m_usageCaseWrapの子で使う）
============================================================ */
.m_usageResult {
  max-width: 85%;
  margin: auto;
  border: 2px solid #333;
  border-radius: var(--radius);
  padding: var(--space-md);
  background: var(--color-white);
  text-align: center;
}
.m_usageResult__ttl {
  font-size: var(--fz-base);
  font-weight: 700;
  margin-bottom: 8px;
}
.m_usageResult__msg {
  font-size: var(--fz-sm);
  color: #555;
  text-align: left;
}
.m_usageResult__txtEm {
  font-weight: 700;
  color: var(--color-text);
}
@media screen and (max-width: 599px){
  .m_usageResult {
    max-width: none;
  }
}

/* ============================================================
  Module: m_companyInfoWrap（m_companyInfoListとm_copyrightのラッパー ※m_companyInfoList、m_copyrightとセットで使う）
============================================================ */
.m_companyInfoWrap {
  background: #f5f5f5;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  padding: var(--space-md);
}
.m_companyInfoWrap__body {
  display: flex;
  align-items: stretch;
  margin-inline: calc(-1 * var(--space-md));
}
.m_companyInfoWrap__item {
  display: flex;
  width: 50%;
  padding-inline: var(--space-md);
}
.m_companyInfoWrap__item + .m_companyInfoWrap__item {
  border-left: 1px solid var(--color-border);
}
.m_companyInfoWrap__inner{
  display: block;
  width: 100%;
}
@media screen and (max-width: 768px) {
  .m_companyInfoWrap__body {
    display: block;
    margin-inline: 0;
  }
  .m_companyInfoWrap__item {
    width: 100%;
    padding-inline: 0;
  }
  .m_companyInfoWrap__item + .m_companyInfoWrap__item {
    margin-top: var(--space-md);
    padding-top: var(--space-md);
    border-left: none;
    border-top: 1px solid var(--color-border);
  }
}
/* ============================================================
  Module: m_companyInfoList（m_companyInfoのラッパー ※m_companyInfoとセットで使う）
============================================================ */
.m_companyInfoList {}
.m_companyInfoList__heading {
  margin-bottom: var(--space-sm);
}
.m_companyInfoList__ttl {
  font-size: var(--fz-lg);
  font-weight: 700;
  margin-bottom: var(--space-sm);
}
.m_companyInfoList__body {}
.m_companyInfoList__item {}
.m_companyInfoList__item + .m_companyInfoList__item{
  margin-top: 5px;
}

/* ============================================================
  Module: m_companyInfo
============================================================ */
.m_companyInfo {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: var(--space-xs);
}
.m_companyInfo__term {
  font-size: var(--fz-sm);
  font-weight: 700;
}
.m_companyInfo__desc {
  font-size: var(--fz-sm);
  color: #555;
}

/* ============================================================
  Module: m_copyright
============================================================ */
.m_copyright{}
.m_copyright__logo {
  width: 120px;
}
.m_copyright__logo img{
  max-width: 100%;
  height: auto;
}
.m_copyright__logo + .m_copyright__copy {
  margin-top: var(--space-sm);
}
.m_copyright__copy {
  font-size: 11px;
  color: #888;
  line-height: 1.8;
}

/* ============================================================
  State: js_imgFadeIn
============================================================ */
.js_imgFadeIn {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .6s ease, transform .6s ease;
}
.js_imgFadeIn.is_active {
  opacity: 1;
  transform: translateY(0);
}

/* ============================================================
  Utility: 幅 (col)
============================================================ */
.u_col1  { width: 8.333%; }
.u_col2  { width: 16.667%; }
.u_col25 { width: 20%; }
.u_col3  { width: 25%; }
.u_col4  { width: 33.333%; }
.u_col5  { width: 41.666%; }
.u_col6  { width: 50%; }
.u_col7  { width: 58.333%; }
.u_col8  { width: 66.666%; }
.u_col9  { width: 75%; }
.u_col10 { width: 83.33%; }
.u_col11 { width: 91.666%; }
.u_col12 { width: 100%; }

@media screen and (max-width: 768px) {
  .u_resMdCol1  { width: 8.333%; }
  .u_resMdCol2  { width: 16.667%; }
  .u_resMdCol25 { width: 20%; }
  .u_resMdCol3  { width: 25%; }
  .u_resMdCol4  { width: 33.333%; }
  .u_resMdCol5  { width: 41.666%; }
  .u_resMdCol6  { width: 50%; }
  .u_resMdCol7  { width: 58.333%; }
  .u_resMdCol8  { width: 66.666%; }
  .u_resMdCol9  { width: 75%; }
  .u_resMdCol10 { width: 83.33%; }
  .u_resMdCol11 { width: 91.666%; }
  .u_resMdCol12 { width: 100%; }
}

@media screen and (max-width: 599px) {
  .u_resSmCol1  { width: 8.333%; }
  .u_resSmCol2  { width: 16.667%; }
  .u_resSmCol25 { width: 20%; }
  .u_resSmCol3  { width: 25%; }
  .u_resSmCol4  { width: 33.333%; }
  .u_resSmCol5  { width: 41.666%; }
  .u_resSmCol6  { width: 50%; }
  .u_resSmCol7  { width: 58.333%; }
  .u_resSmCol8  { width: 66.666%; }
  .u_resSmCol9  { width: 75%; }
  .u_resSmCol10 { width: 83.33%; }
  .u_resSmCol11 { width: 91.666%; }
  .u_resSmCol12 { width: 100%; }
}

/* ============================================================
  Utility: margin-bottom (mb)
============================================================ */
.u_mb8   { margin-bottom: 8px; }
.u_mb16  { margin-bottom: 16px; }
.u_mb24  { margin-bottom: 24px; }
.u_mb32  { margin-bottom: 32px; }
.u_mb40  { margin-bottom: 40px; }
.u_mb48  { margin-bottom: 48px; }
.u_mb56  { margin-bottom: 56px; }
.u_mb64  { margin-bottom: 64px; }
.u_mb80  { margin-bottom: 80px; }
.u_mb96  { margin-bottom: 96px; }
.u_mb120 { margin-bottom: 120px; }
.u_mbXs  { margin-bottom: var(--space-xs); }
.u_mbSm  { margin-bottom: var(--space-sm); }
.u_mbMd  { margin-bottom: var(--space-md); }
.u_mbLg  { margin-bottom: var(--space-lg); }
.u_mbXl  { margin-bottom: var(--space-xl); }

@media screen and (max-width: 768px) {
  .u_resMdMb0  { margin-bottom: 0 !important; }
  .u_resMdMb8  { margin-bottom: 8px; }
  .u_resMdMb16 { margin-bottom: 16px; }
  .u_resMdMb24 { margin-bottom: 24px; }
  .u_resMdMb32 { margin-bottom: 32px; }
  .u_resMdMb40 { margin-bottom: 40px; }
  .u_resMdMb48 { margin-bottom: 48px; }
  .u_resMdMb64 { margin-bottom: 64px; }
  .u_resMdMb80 { margin-bottom: 80px; }
}
@media screen and (max-width: 599px) {
  .u_resSmMb0  { margin-bottom: 0 !important; }
  .u_resSmMb8  { margin-bottom: 8px; }
  .u_resSmMb16 { margin-bottom: 16px; }
  .u_resSmMb24 { margin-bottom: 24px; }
  .u_resSmMb32 { margin-bottom: 32px; }
  .u_resSmMb40 { margin-bottom: 40px; }
  .u_resSmMb48 { margin-bottom: 48px; }
  .u_resSmMb64 { margin-bottom: 64px; }
  .u_resSmMb80 { margin-bottom: 80px; }
}

/* ============================================================
  Utility: margin-top (mt)
============================================================ */
.u_mt8   { margin-top: 8px; }
.u_mt16  { margin-top: 16px; }
.u_mt24  { margin-top: 24px; }
.u_mt32  { margin-top: 32px; }
.u_mt40  { margin-top: 40px; }
.u_mt48  { margin-top: 48px; }
.u_mt56  { margin-top: 56px; }
.u_mt64  { margin-top: 64px; }
.u_mt80  { margin-top: 80px; }
.u_mt96  { margin-top: 96px; }
.u_mt120 { margin-top: 120px; }

@media screen and (max-width: 768px) {
  .u_resMdMt0  { margin-top: 0 !important; }
  .u_resMdMt8  { margin-top: 8px; }
  .u_resMdMt16 { margin-top: 16px; }
  .u_resMdMt24 { margin-top: 24px; }
  .u_resMdMt32 { margin-top: 32px; }
  .u_resMdMt40 { margin-top: 40px; }
  .u_resMdMt48 { margin-top: 48px; }
  .u_resMdMt64 { margin-top: 64px; }
  .u_resMdMt80 { margin-top: 80px; }
}
@media screen and (max-width: 599px) {
  .u_resSmMt0  { margin-top: 0 !important; }
  .u_resSmMt8  { margin-top: 8px; }
  .u_resSmMt16 { margin-top: 16px; }
  .u_resSmMt24 { margin-top: 24px; }
  .u_resSmMt32 { margin-top: 32px; }
  .u_resSmMt40 { margin-top: 40px; }
  .u_resSmMt48 { margin-top: 48px; }
  .u_resSmMt64 { margin-top: 64px; }
  .u_resSmMt80 { margin-top: 80px; }
}

/* ============================================================
  Utility: margin-left (ml)
============================================================ */
.u_ml8  { margin-left: 8px; }
.u_ml16 { margin-left: 16px; }
.u_ml24 { margin-left: 24px; }
.u_ml32 { margin-left: 32px; }
.u_ml40 { margin-left: 40px; }
.u_ml48 { margin-left: 48px; }
.u_ml64 { margin-left: 64px; }
.u_mlA  { margin-left: auto; }

@media screen and (max-width: 768px) {
  .u_resMdMl0  { margin-left: 0 !important; }
  .u_resMdMl8  { margin-left: 8px; }
  .u_resMdMl16 { margin-left: 16px; }
  .u_resMdMl24 { margin-left: 24px; }
  .u_resMdMl32 { margin-left: 32px; }
  .u_resMdMlA  { margin-left: auto; }
}
@media screen and (max-width: 599px) {
  .u_resSmMl0  { margin-left: 0 !important; }
  .u_resSmMl8  { margin-left: 8px; }
  .u_resSmMl16 { margin-left: 16px; }
  .u_resSmMl24 { margin-left: 24px; }
  .u_resSmMl32 { margin-left: 32px; }
  .u_resSmMlA  { margin-left: auto; }
}

/* ============================================================
  Utility: margin-right (mr)
============================================================ */
.u_mr8  { margin-right: 8px; }
.u_mr16 { margin-right: 16px; }
.u_mr24 { margin-right: 24px; }
.u_mr32 { margin-right: 32px; }
.u_mr40 { margin-right: 40px; }
.u_mr48 { margin-right: 48px; }
.u_mr64 { margin-right: 64px; }
.u_mrA  { margin-right: auto; }

@media screen and (max-width: 768px) {
  .u_resMdMr0  { margin-right: 0 !important; }
  .u_resMdMr8  { margin-right: 8px; }
  .u_resMdMr16 { margin-right: 16px; }
  .u_resMdMr24 { margin-right: 24px; }
  .u_resMdMr32 { margin-right: 32px; }
  .u_resMdMrA  { margin-right: auto; }
}
@media screen and (max-width: 599px) {
  .u_resSmMr0  { margin-right: 0 !important; }
  .u_resSmMr8  { margin-right: 8px; }
  .u_resSmMr16 { margin-right: 16px; }
  .u_resSmMr24 { margin-right: 24px; }
  .u_resSmMr32 { margin-right: 32px; }
  .u_resSmMrA  { margin-right: auto; }
}

/* ============================================================
  Utility: margin-inline (mxA)
============================================================ */
.u_mxA { margin-inline: auto; }

@media screen and (max-width: 768px) {
  .u_resMdMxA { margin-inline: auto; }
}
@media screen and (max-width: 599px) {
  .u_resSmMxA { margin-inline: auto; }
}

/* ============================================================
  Utility: padding-top (pt)
============================================================ */
.u_pt0  { padding-top: 0 !important; }
.u_pt8  { padding-top: 8px; }
.u_pt16 { padding-top: 16px; }
.u_pt24 { padding-top: 24px; }
.u_pt32 { padding-top: 32px; }
.u_pt40 { padding-top: 40px; }
.u_pt48 { padding-top: 48px; }
.u_pt64 { padding-top: 64px; }
.u_pt80 { padding-top: 80px; }

@media screen and (max-width: 768px) {
  .u_resMdPt0  { padding-top: 0 !important; }
  .u_resMdPt16 { padding-top: 16px; }
  .u_resMdPt32 { padding-top: 32px; }
}
@media screen and (max-width: 599px) {
  .u_resSmPt0  { padding-top: 0 !important; }
  .u_resSmPt16 { padding-top: 16px; }
  .u_resSmPt32 { padding-top: 32px; }
}

/* ============================================================
  Utility: padding-bottom (pb)
============================================================ */
.u_pb0  { padding-bottom: 0 !important; }
.u_pb8  { padding-bottom: 8px; }
.u_pb16 { padding-bottom: 16px; }
.u_pb24 { padding-bottom: 24px; }
.u_pb32 { padding-bottom: 32px; }
.u_pb40 { padding-bottom: 40px; }
.u_pb48 { padding-bottom: 48px; }
.u_pb64 { padding-bottom: 64px; }
.u_pb80 { padding-bottom: 80px; }
.u_pbXs { padding-bottom: var(--space-xs); }
.u_pbSm { padding-bottom: var(--space-sm); }
.u_pbMd { padding-bottom: var(--space-md); }
.u_pbLg { padding-bottom: var(--space-lg); }
.u_pbXl { padding-bottom: var(--space-xl); }

@media screen and (max-width: 768px) {
  .u_resMdPb0  { padding-bottom: 0 !important; }
  .u_resMdPb16 { padding-bottom: 16px; }
  .u_resMdPb32 { padding-bottom: 32px; }
}
@media screen and (max-width: 599px) {
  .u_resSmPb0  { padding-bottom: 0 !important; }
  .u_resSmPb16 { padding-bottom: 16px; }
  .u_resSmPb32 { padding-bottom: 32px; }
}

/* ============================================================
  Utility: padding-left (pl)
============================================================ */
.u_pl0  { padding-left: 0 !important; }
.u_pl8  { padding-left: 8px; }
.u_pl16 { padding-left: 16px; }
.u_pl24 { padding-left: 24px; }
.u_pl32 { padding-left: 32px; }
.u_pl40 { padding-left: 40px; }
.u_pl48 { padding-left: 48px; }
.u_pl64 { padding-left: 64px; }

@media screen and (max-width: 768px) {
  .u_resMdPl0  { padding-left: 0 !important; }
  .u_resMdPl16 { padding-left: 16px; }
  .u_resMdPl24 { padding-left: 24px; }
  .u_resMdPl32 { padding-left: 32px; }
}
@media screen and (max-width: 599px) {
  .u_resSmPl0  { padding-left: 0 !important; }
  .u_resSmPl16 { padding-left: 16px; }
  .u_resSmPl24 { padding-left: 24px; }
  .u_resSmPl32 { padding-left: 32px; }
}

/* ============================================================
  Utility: padding-right (pr)
============================================================ */
.u_pr0  { padding-right: 0 !important; }
.u_pr8  { padding-right: 8px; }
.u_pr16 { padding-right: 16px; }
.u_pr24 { padding-right: 24px; }
.u_pr32 { padding-right: 32px; }
.u_pr40 { padding-right: 40px; }
.u_pr48 { padding-right: 48px; }
.u_pr64 { padding-right: 64px; }

@media screen and (max-width: 768px) {
  .u_resMdPr0  { padding-right: 0 !important; }
  .u_resMdPr16 { padding-right: 16px; }
  .u_resMdPr24 { padding-right: 24px; }
  .u_resMdPr32 { padding-right: 32px; }
}
@media screen and (max-width: 599px) {
  .u_resSmPr0  { padding-right: 0 !important; }
  .u_resSmPr16 { padding-right: 16px; }
  .u_resSmPr24 { padding-right: 24px; }
  .u_resSmPr32 { padding-right: 32px; }
}

/* ============================================================
  Utility: padding-inline (px)
============================================================ */
.u_px0 {
  padding-inline: 0 !important;
}
.u_px8 {
  padding-inline: 8px;
}
.u_px16 {
  padding-inline: 16px;
}
.u_px24 {
  padding-inline: 24px;
}
.u_px32 {
  padding-inline: 32px;
}
.u_px40 {
  padding-inline: 40px;
}

@media screen and (max-width: 768px) {
  .u_resMdPx0 {
    padding-inline: 0 !important;
  }
  .u_resMdPx16 {
    padding-inline: 16px;
  }
  .u_resMdPx24 {
    padding-inline: 24px;
  }
}
@media screen and (max-width: 599px) {
  .u_resSmPx0 {
    padding-inline: 0 !important;
  }
  .u_resSmPx16 {
    padding-inline: 16px;
  }
  .u_resSmPx24 {
    padding-inline: 24px;
  }
}

/* ============================================================
  Utility: padding-block (py)
============================================================ */
.u_py0 {
  padding-block: 0 !important;
}
.u_py8 {
  padding-block: 8px;
}
.u_py16 {
  padding-block: 16px;
}
.u_py24 {
  padding-block: 24px;
}
.u_py32 {
  padding-block: 32px;
}
.u_py40 {
  padding-block: 40px;
}
.u_py48 {
  padding-block: 48px;
}
.u_py64 {
  padding-block: 64px;
}
.u_py80 {
  padding-block: 80px;
}

@media screen and (max-width: 768px) {
  .u_resMdPy0 {
    padding-block: 0 !important;
  }
  .u_resMdPy16 {
    padding-block: 16px;
  }
  .u_resMdPy32 {
    padding-block: 32px;
  }
}
@media screen and (max-width: 599px) {
  .u_resSmPy0 {
    padding-block: 0 !important;
  }
  .u_resSmPy16 {
    padding-block: 16px;
  }
  .u_resSmPy32 {
    padding-block: 32px;
  }
}

/* ============================================================
  Utility: display / visibility
============================================================ */
.u_block {
  display: block;
}
.u_hide {
  display: none;
}

@media screen and (max-width: 768px) {
  .u_resMdHide {
    display: none;
  }
  .u_resMdBlock {
    display: block;
  }
  .u_resMdInline {
    display: inline;
  }
}
@media screen and (max-width: 599px) {
  .u_resSmHide {
    display: none;
  }
  .u_resSmBlock {
    display: block;
  }
  .u_resSmInline {
    display: inline;
  }
}

/* ============================================================
  Utility: テキスト制御
============================================================ */
.u_bold {
  font-weight: 700;
}
.u_normal {
  font-weight: 400;
}
.u_taL {
  text-align: left;
}
.u_taC {
  text-align: center;
}
.u_taR {
  text-align: right;
}
.u_super {
  vertical-align: super;
  font-size: 11px;
}

@media screen and (max-width: 768px) {
  .u_resMdTaL {
    text-align: left;
  }
  .u_resMdTaC {
    text-align: center;
  }
  .u_resMdTaR {
    text-align: right;
  }
}
@media screen and (max-width: 599px) {
  .u_resSmTaL {
    text-align: left;
  }
  .u_resSmTaC {
    text-align: center;
  }
  .u_resSmTaR {
    text-align: right;
  }
}