/* ============================================
   Components — c-*
   値は design-system/components/ の定義に一致させている
   ============================================ */

/* ---- Buttons ----
   正本 SIZES: sm = h52 / 0 28px / 15px / gap 12
               lg = h64 / 0 40px / 16px / gap 20 */
.c-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 12px;
  min-height: 52px; padding: 12px 28px; border-radius: var(--radius-md);
  font-family: var(--font-sans); font-weight: var(--fw-bold); font-size: var(--fs-ui);
  letter-spacing: var(--ls-base); cursor: pointer; border: 0;
  transition: transform var(--dur-fast) var(--ease-standard), box-shadow var(--dur-fast) var(--ease-standard);
}
.c-btn::after { content: "›"; }
.c-btn--gold {
  color: var(--text-on-dark);
  background: var(--grad-gold-cta);
  box-shadow: var(--shadow-cta);
}
/* 正本: CTA は影が深くなり、同時に -1px 持ち上がる */
.c-btn--gold:hover { color: var(--text-on-dark); transform: var(--lift-sm); box-shadow: var(--shadow-hover); }
.c-btn--outline { border: var(--border-width-button) solid var(--navy-800); background: var(--surface-page); color: var(--text-strong); }
.c-btn--outline:hover { background: var(--surface-alt); color: var(--text-strong); transform: var(--lift-sm); }
.c-btn--gold-outline {
  border: var(--border-width-button) solid transparent; color: var(--gold-ink);
  background-image: linear-gradient(#fff, #fff), var(--grad-gold-edge);
  background-origin: border-box; background-clip: padding-box, border-box;
}
.c-btn--gold-outline:hover { color: var(--gold-700); transform: var(--lift-sm); }
.c-btn--lg { min-height: 64px; padding: 14px 40px; gap: 20px; font-size: 16px; }
.c-btn--back::after { content: none; }
.c-btn--back::before { content: "‹"; }
.c-btn--block { display: flex; width: 100%; }
/* SP正本のボタン寸法: 標準 h56 / fs14.5、hero・CTA の大型 h64 / fs16、
   カード内 h50 / fs13、CTAバンド h60 / fs15.5 */
@media (max-width: 767px) {
  .c-btn { width: 100%; min-height: 56px; padding: 12px 20px; gap: 12px; font-size: var(--fs-title); }
  .c-btn--inline { width: auto; }
  .c-btn--lg { min-height: 64px; padding: 14px 20px; gap: 14px; font-size: 16px; }
  .c-btn--sm { min-height: 50px; padding: 10px 16px; gap: 8px; font-size: var(--fs-caption); }
}

/* ---- Section head ----
   正本 SectionHeading: eyebrow 600 14px Inter / ls .2em、24×1.5px の金ルール、
   h2 = --fs-h2 / --lh-h2（margin-top 8）、lead = --fs-section-lead / --lh-lead / --text-muted（margin-top 24） */
.c-section-head { display: flex; flex-direction: column; align-items: center; text-align: center; }
.c-section-head--left { align-items: flex-start; text-align: left; }
.c-section-head__en { font: var(--eyebrow); font-family: var(--font-latin); letter-spacing: var(--ls-eyebrow); color: var(--gold-ink); }
.l-section--navy .c-section-head__en { color: var(--gold-250); }
.c-section-head__en::after { content: ""; display: block; width: var(--rule-w); height: var(--rule-h); background: var(--gold-550); margin: var(--rule-gap) auto; }
.c-section-head--left .c-section-head__en::after { margin-left: 0; }
.c-section-head__title { margin-top: 8px; font-family: var(--font-serif); font-weight: var(--fw-semibold); font-size: var(--fs-h2); line-height: var(--lh-h2); letter-spacing: var(--ls-base); }
.c-section-head__lead { margin-top: 24px; font-size: var(--fs-section-lead); line-height: var(--lh-lead); color: var(--text-muted); }
/* SP正本: h2 は mt6px、リードは mt14px */
@media (max-width: 767px) {
  .c-section-head__title { margin-top: 6px; }
  .c-section-head__lead { margin-top: 14px; }
}
.l-section--navy .c-section-head__title { color: var(--text-on-dark); }
.l-section--navy .c-section-head__lead { color: var(--text-on-dark-muted); }

/* ---- Tags / Badges ---- */
.c-tag { display: inline-block; font-size: var(--fs-micro); line-height: 1.4; border-radius: var(--radius-xs); padding: 4px 10px; border: 1px solid var(--gold-550); color: var(--gold-ink); }
.c-tag--blue { border-color: var(--blue-600); color: var(--blue-600); }
.c-tag--navy { border-color: var(--navy-700); color: var(--navy-700); }
.c-badge { display: inline-block; font-size: var(--fs-micro); font-weight: var(--fw-bold); border-radius: var(--radius-xs); padding: 5px 12px; }
.c-badge--open { color: var(--text-on-dark); background: var(--grad-gold-cta); }
.c-badge--closed { color: var(--text-muted); background: var(--border-inner); }
.c-badge--archive { color: var(--blue-600); border: 1px solid var(--blue-600); padding: 4px 11px; }
.c-badge--required { color: var(--text-on-dark); background: var(--color-required); font-size: var(--fs-nano); padding: 3px 8px; }
.c-badge--optional { color: var(--text-muted); background: var(--border-inner); font-size: var(--fs-nano); padding: 3px 8px; }

/* ---- Card ---- */
.c-card {
  display: flex; flex-direction: column; min-width: 0;
  background: var(--surface-card); border: var(--border-width-card) solid var(--border-card); border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card); overflow: hidden;
  transition: box-shadow var(--dur-base) var(--ease-standard), transform var(--dur-base) var(--ease-standard);
  color: var(--text-strong);
}
/* 正本: タイルは影が深くなり、同時に -3px 持ち上がる */
a.c-card:hover { box-shadow: var(--shadow-hover); color: var(--text-strong); transform: var(--lift-md); }
.c-card__thumb { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; background: var(--surface-alt); }
.c-card__body { display: flex; flex-direction: column; gap: 12px; padding: 22px 24px 24px; flex: 1; }
.c-card__company { font-family: var(--font-serif); font-size: 16px; font-weight: var(--fw-semibold); }
.c-card__title { font-size: var(--fs-title); font-weight: var(--fw-bold); line-height: var(--lh-title); }
.c-card__text { font-size: var(--fs-body-sm); line-height: var(--lh-body-sm); color: var(--text-muted); }
.c-card__meta { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: auto; padding-top: 8px; }
.c-card__date { margin-left: auto; font-family: var(--font-latin); font-size: var(--fs-micro); font-weight: var(--fw-medium); color: var(--navy-100); }
/* プロダクトカードのロゴ（PC 88px / SP正本 60px） */
.c-card__logo { width: 100%; height: 88px; object-fit: contain; }
/* SP正本のプロダクトカード: pad 22px 22px 20px / gap12 / ロゴ60 /
   見出し 14.5-1.7 / 本文 12.5-1.9 / CTA h50 fs13 */
@media (max-width: 767px) {
  .c-card__body { padding: 22px 22px 20px; gap: 12px; }
  .c-card__text { font-size: 12.5px; }
  .c-card__logo { height: 60px; }
  .c-card .c-btn { min-height: 50px; padding: 10px 16px; gap: 8px; font-size: var(--fs-caption); }
}

/* ---- Feature / Reason card ----
   正本 ReasonCard: padding 48px 52px、radius 16、tone=face の面グラデ、
   3px の金グラデ・スパイン、連番 = --fs-numeral / lh 1.55 */
.c-feature {
  position: relative; padding: 48px 52px; min-width: 0;
  /* navy バンドの内側でも白面カードなので文字色を自前で確定させる */
  color: var(--text-strong);
  background: var(--surface-card-face);
  border: var(--border-width-card) solid var(--border-card); border-radius: var(--radius-xl);
  box-shadow: var(--shadow-card-quiet); overflow: hidden;
  transition: box-shadow var(--dur-base) var(--ease-standard), transform var(--dur-base) var(--ease-standard);
}
.c-feature:hover { box-shadow: var(--shadow-hover-soft); }
.c-feature::before { content: ""; position: absolute; top: 0; left: 0; width: var(--rule-accent-width); height: 100%; background: var(--grad-gold-edge); }
.c-feature__num { font-family: var(--font-serif); font-weight: var(--fw-semibold); font-size: var(--fs-numeral); line-height: var(--lh-stat); }
.c-feature__title { margin-top: 22px; font-family: var(--font-serif); font-size: var(--fs-h3); font-weight: var(--fw-semibold); line-height: var(--lh-h3); }
.c-feature__sub { margin-top: 22px; font-size: var(--fs-body); line-height: var(--lh-body); color: var(--text-body); }
/* 3カラムに並べる小型版（正本 ProductCard の padding 28px 28px 24px に合わせる）。
   見出し・連番はインラインの固定pxではなくここで一段落とす＝SPでも縮む。 */
.c-feature--compact { display: flex; flex-direction: column; gap: 14px; padding: 28px 28px 24px; }
.c-feature--compact .c-feature__num { font-size: clamp(26px, 1.11vw + 21.79px, 36px); line-height: 1.25; }
.c-feature--compact .c-feature__title { margin-top: 0; font-size: clamp(18px, 0.44vw + 14.37px, 20px); line-height: var(--lh-h3); }
@media (max-width: 1023px) { .c-feature { padding: 36px 32px; } .c-feature--compact { padding: 28px 24px 24px; } }
/* SP正本: padding 28px 22px / r14 / 連番 40-1.5 / h3 21-1.6 mt14 / 本文 13-2.0 mt16 */
@media (max-width: 767px) {
  .c-feature { padding: 28px 22px; }
  .c-feature--compact { padding: 24px 20px; }
  .c-feature__num { line-height: 1.5; }
  .c-feature__title { margin-top: 14px; }
  .c-feature__sub { margin-top: 16px; }
}

/* ---- Definition table ---- */
.c-table { border-top: 2px solid var(--navy-800); }
.c-table__row { display: grid; grid-template-columns: 240px 1fr; border-bottom: 1px solid var(--border-card); }
.c-table__th { color: var(--text-strong); padding: 24px 28px; background: var(--surface-alt); font-family: var(--font-serif); font-weight: var(--fw-semibold); font-size: var(--fs-ui); }
.c-table__td { color: var(--text-strong); padding: 24px 32px; font-size: var(--fs-ui); line-height: var(--lh-body-sm); }
@media (max-width: 1023px) {
  .c-table__row { grid-template-columns: 180px 1fr; }
  .c-table__th { padding: 18px 20px; }
  .c-table__td { padding: 18px 20px; }
}
@media (max-width: 767px) {
  .c-table__row { grid-template-columns: 1fr; }
  .c-table__th { padding: 14px 16px; font-size: var(--fs-body-sm); }
  .c-table__td { padding: 16px; font-size: var(--fs-body-sm); }
}

/* ---- Filter ---- */
.c-filter { color: var(--text-strong); display: flex; flex-direction: column; gap: 18px; padding: 26px 32px; background: var(--surface-card); border: var(--border-width-card) solid var(--border-card); border-radius: var(--radius-lg); box-shadow: var(--shadow-card); }
.c-filter__group { display: grid; grid-template-columns: 120px 1fr; gap: 20px; align-items: center; }
.c-filter__group + .c-filter__group { padding-top: 18px; border-top: 1px solid var(--border-inner); }
.c-filter__label { font-family: var(--font-serif); font-size: var(--fs-body-sm); font-weight: var(--fw-semibold); }
.c-filter__tabs { display: flex; flex-wrap: wrap; gap: 10px; }
.c-filter__tabs--center { justify-content: center; }
.c-tab {
  padding: 8px 18px; border-radius: var(--radius-pill); font-size: var(--fs-caption); font-weight: var(--fw-medium);
  border: 1px solid var(--border-rule); background: var(--surface-page); color: var(--text-strong);
  cursor: pointer; transition: background var(--dur-fast), color var(--dur-fast); min-height: 38px;
}
.c-tab:hover { background: var(--surface-alt); }
.c-tab.is-active { background: var(--navy-800); border-color: var(--navy-800); color: var(--text-on-dark); font-weight: var(--fw-bold); }
.c-tab--lg { padding: 10px 22px; font-size: var(--fs-body-sm); min-height: 44px; }
@media (max-width: 1023px) {
  .c-filter { padding: 22px 24px; }
  .c-filter__group { grid-template-columns: 100px 1fr; gap: 14px; }
}
@media (max-width: 767px) {
  .c-filter { padding: 18px 16px; }
  .c-filter__group { grid-template-columns: 1fr; gap: 10px; }
  /* SP正本: タブは h44 / pad 0 18px / fs13。画面端まで伸ばして横スクロールさせる */
  .c-filter__tabs { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .c-filter__tabs::-webkit-scrollbar { display: none; }
  .c-filter__tabs--center {
    justify-content: flex-start;
    margin-left: calc(var(--gutter) * -1); margin-right: calc(var(--gutter) * -1);
    padding: 0 var(--gutter) 4px;
  }
  /* 44px はフィルタ用タブのみ（.c-tab をラベルとして流用している箇所を膨らませない） */
  .c-filter__tabs .c-tab { flex: none; min-height: 44px; padding: 0 18px; font-size: var(--fs-caption); white-space: nowrap; }
}

/* ---- News list ----
   正本 NewsRow: grid 120px 130px 1fr 32px / gap 24 / padding 26px 32px */
.c-news-list { color: var(--text-strong); background: var(--surface-card); border: var(--border-width-card) solid var(--border-card); border-radius: var(--radius-lg); box-shadow: var(--shadow-card); overflow: hidden; }
.c-news-list__item {
  display: grid; grid-template-columns: 120px 130px 1fr 32px; align-items: center; gap: 24px;
  padding: 26px 32px; border-bottom: 1px solid var(--border-hair); color: var(--text-strong);
  transition: background var(--dur-fast) var(--ease-standard);
}
.c-news-list__item:hover { background: var(--surface-alt); color: var(--text-strong); }
.c-news-list__date { font-family: var(--font-latin); font-size: var(--fs-body-sm); font-weight: var(--fw-medium); color: var(--text-muted); }
.c-news-list__title { font-size: var(--fs-ui); line-height: var(--lh-caption); min-width: 0; }
.c-news-list__arrow { font-size: 18px; color: var(--gold-ink); justify-self: end; }
.c-news-list__empty { min-height: 140px; display: flex; align-items: center; justify-content: center; font-size: var(--fs-ui); color: var(--text-muted); }
@media (max-width: 1023px) {
  .c-news-list__item { grid-template-columns: 104px 110px 1fr 24px; gap: 16px; padding: 22px 24px; }
}
/* SP正本: 行 pad 18px 20px、日付＋カテゴリ行 gap12、タイトル 13.5/1.8 */
@media (max-width: 767px) {
  .c-news-list__item { grid-template-columns: auto auto 1fr; grid-template-rows: auto auto; gap: 6px 12px; padding: 18px 20px; }
  .c-news-list__date { font-size: var(--fs-caption); }
  .c-news-list__title { grid-column: 1 / -1; font-size: var(--fs-section-lead); line-height: 1.8; }
  .c-news-list__arrow { display: none; }
}

/* ---- Stat ----
   正本 StatBlock: label 16/1.5、数値 = --fs-stat / --lh-stat（margin -8/-10）、
   単位 20、note = --fs-caption / max-width 240 */
.c-stat { color: var(--text-strong); display: flex; flex-direction: column; align-items: flex-start; min-width: 0; padding: 28px 30px; background: var(--surface-card); border: var(--border-width-card) solid var(--border-card); border-radius: var(--radius-lg); box-shadow: var(--shadow-card); }
.c-stat__label { font-family: var(--font-serif); font-size: 16px; line-height: 1.5; font-weight: var(--fw-semibold); }
.c-stat__value { display: flex; align-items: baseline; gap: 4px; white-space: nowrap; margin: -8px 0 -10px; }
.c-stat__num { font-family: var(--font-serif); font-weight: var(--fw-semibold); font-size: var(--fs-stat); line-height: var(--lh-stat); }
.c-stat__unit { font-family: var(--font-serif); font-size: 20px; font-weight: var(--fw-semibold); }
.c-stat__note { margin-top: 12px; max-width: 240px; font-size: var(--fs-caption); line-height: var(--lh-caption); color: var(--text-muted); }
@media (max-width: 1023px) {
  .c-stat { padding: 24px; }
  .c-stat__note { max-width: none; }
}

/* ---- Pager ---- */
.c-pager { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; }
.c-pager a, .c-pager span {
  display: flex; align-items: center; justify-content: center; width: 44px; height: 44px;
  border-radius: var(--radius-md); font-family: var(--font-latin); font-size: var(--fs-body-sm); font-weight: var(--fw-semibold);
  border: 1px solid var(--border-rule); color: var(--text-strong);
}
.c-pager .is-current { background: var(--navy-800); border-color: var(--navy-800); color: var(--text-on-dark); }

/* ---- FAQ ---- */
.c-faq { color: var(--text-strong); border: var(--border-width-card) solid var(--border-card); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-card-quiet); }
.c-faq__q { display: grid; grid-template-columns: 52px 1fr 24px; gap: 14px; align-items: center; width: 100%; padding: 22px 28px; background: var(--surface-alt); border: 0; text-align: left; cursor: pointer; }
.c-faq__q-num { font-family: var(--font-serif); font-weight: var(--fw-semibold); font-size: 24px; }
.c-faq__q-text { font-size: var(--fs-ui); font-weight: var(--fw-bold); line-height: var(--lh-caption); min-width: 0; }
.c-faq__q-icon { color: var(--gold-ink); transition: transform var(--dur-base) var(--ease-standard); }
.c-faq.is-open .c-faq__q-icon { transform: rotate(45deg); }
.c-faq__a { display: none; grid-template-columns: 52px 1fr; gap: 14px; padding: 22px 28px; }
.c-faq.is-open .c-faq__a { display: grid; }
.c-faq__a-mark { font-family: var(--font-serif); font-weight: var(--fw-semibold); font-size: 22px; color: var(--blue-600); }
.c-faq__a-text { font-size: var(--fs-body-sm); line-height: var(--lh-body); color: var(--text-body); }
@media (max-width: 767px) {
  .c-faq__q { grid-template-columns: 36px 1fr auto; padding: 16px; gap: 10px; }
  .c-faq__a { grid-template-columns: 36px 1fr; padding: 16px; gap: 10px; }
}

/* ---- Form ---- */
.c-form__row { display: grid; grid-template-columns: 260px 1fr; gap: 24px; align-items: center; padding: 22px 0; border-bottom: 1px solid var(--border-inner); }
.c-form__label { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; font-size: var(--fs-ui); font-weight: var(--fw-bold); }
.c-form__input, .c-form__select, .c-form__textarea {
  width: 100%; min-height: 52px; padding: 12px 18px;
  border: 1px solid var(--border-rule); border-radius: var(--radius-md);
  background: var(--surface-card-soft); font-size: var(--fs-body-sm);
}
.c-form__input:focus, .c-form__select:focus, .c-form__textarea:focus { outline: 2px solid var(--blue-600); outline-offset: -1px; }
.c-form__textarea { min-height: 150px; resize: vertical; }
.c-form__checks { display: flex; flex-wrap: wrap; gap: 10px; }
.c-form__check { display: flex; align-items: center; gap: 8px; padding: 10px 18px; border-radius: var(--radius-md); font-size: var(--fs-body-sm); border: 1px solid var(--border-rule); background: var(--surface-page); cursor: pointer; min-height: 44px; }
.c-form__check:has(:checked) { border-color: var(--gold-550); background: var(--gold-tint); color: var(--gold-ink); font-weight: var(--fw-bold); }
@media (max-width: 1023px) {
  .c-form__row { grid-template-columns: 200px 1fr; gap: 20px; }
}
@media (max-width: 767px) {
  .c-form__row { grid-template-columns: 1fr; gap: 10px; padding: 16px 0; align-items: start; }
}

/* ---- Quote / 引用パネル ---- */
.c-quote { color: var(--text-strong); position: relative; padding: 36px 40px; background: var(--surface-alt); border-radius: var(--radius-lg); overflow: hidden; }
/* 金のスパインは「これは根拠である」の意味を持つ 3px グラデーション（フラットな色帯にしない） */
.c-quote::before { content: ""; position: absolute; top: 0; left: 0; width: var(--rule-accent-width); height: 100%; background: var(--grad-gold-edge); }
.c-quote__text { font-family: var(--font-serif); font-size: 19px; font-weight: var(--fw-semibold); line-height: var(--lh-lead); }
.c-quote__source { margin-top: 14px; font-size: var(--fs-caption); line-height: var(--lh-caption); color: var(--text-muted); }
@media (max-width: 767px) { .c-quote { padding: 20px 22px; } .c-quote__text { font-size: 16px; } }

/* ---- CTA band（共通） ---- */
.c-cta { background: var(--grad-contact); }
.c-cta__inner { display: flex; flex-direction: column; align-items: center; text-align: center; padding-top: var(--section-pad-y); padding-bottom: var(--section-pad-y); }
.c-cta__buttons { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; margin-top: 56px; width: 100%; max-width: 880px; }
.c-cta__note { font-size: var(--fs-caption); color: var(--text-muted); margin-top: 16px; }
.c-cta__tel { display: flex; align-items: baseline; flex-wrap: wrap; justify-content: center; gap: 20px; margin-top: 56px; padding-top: 40px; border-top: 1px solid rgba(0,16,56,.14); width: 100%; max-width: 880px; }
.c-cta__tel-number { font-family: var(--font-serif); font-size: 36px; font-weight: var(--fw-semibold); letter-spacing: var(--ls-lead); }
.c-cta__tel-note { font-size: var(--fs-caption); color: var(--text-muted); }
@media (max-width: 1023px) {
  .c-cta__buttons { gap: 20px; margin-top: 40px; }
  .c-cta__tel { margin-top: 40px; padding-top: 32px; }
  .c-cta__tel-number { font-size: 30px; }
}
/* SP正本: pad 64px 20px / ボタン mt32 gap14 h60 fs15.5 / TEL mt36 pad-top28 gap6 28px */
@media (max-width: 767px) {
  .c-cta__inner { padding-top: 64px; padding-bottom: 64px; }
  .c-cta__buttons { grid-template-columns: 1fr; gap: 14px; margin-top: 32px; }
  .c-cta__buttons .c-btn { min-height: 60px; font-size: 15.5px; gap: 14px; }
  .c-cta__note { font-size: var(--fs-micro); margin-top: 12px; }
  .c-cta__tel { margin-top: 36px; padding-top: 28px; gap: 6px; flex-direction: column; align-items: center; }
  .c-cta__tel-number { font-size: 28px; }
  .c-cta__tel-note { font-size: var(--fs-micro); }
}

/* ---- Grid utilities ----
   正本のカードグリッドは 24px gap。
   タブレット帯（〜1023px）では列数を落とさないと最小幅で横溢れするため段階的に畳む。 */
.c-grid { display: grid; gap: var(--grid-gap); }
.c-grid > * { min-width: 0; }
.c-grid--2 { grid-template-columns: repeat(2, 1fr); }
.c-grid--3 { grid-template-columns: repeat(3, 1fr); }
.c-grid--4 { grid-template-columns: repeat(4, 1fr); }
.c-grid--5 { grid-template-columns: repeat(5, 1fr); }
@media (max-width: 1279px) {
  .c-grid--5 { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 1023px) {
  .c-grid--3, .c-grid--4 { grid-template-columns: repeat(2, 1fr); }
  .c-grid--5 { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 767px) {
  .c-grid--2, .c-grid--3, .c-grid--4 { grid-template-columns: 1fr; }
  .c-grid--5 { grid-template-columns: repeat(2, 1fr); }
}

/* ============================================
   SP 正本（sp-*.dc.html / 375px 実測）に合わせるサイズ補正
   下層ページで役割ごとに一段小さくなるもの。
   テキスト一致による正本との突き合わせで検出した差分。
   ============================================ */
@media (max-width: 767px) {
  /* 統計カード（TOP hero の統計とは別サイズ） */
  .c-stat__label { font-size: var(--fs-body-sm); }
  .c-stat__num { font-size: 42px; }
  .c-stat__unit { font-size: var(--fs-body-sm); }
  .c-stat__note { font-size: var(--fs-nano); }
  /* 事例カードの企業名 */
  .c-card__company { font-size: var(--fs-ui); }
  /* 絞り込みの項目名 */
  .c-filter__label { font-size: var(--fs-micro); }
  /* 定義テーブル */
  .c-table__th, .c-table__td { font-size: var(--fs-caption); }
  /* ニュース行の日付 */
  .c-news-list__date { font-size: var(--fs-micro); }
  /* フォームの項目名 */
  .c-form__label { font-size: var(--fs-caption); }
  /* ボタン: 大型は 15px、戻るボタンは 14.5px */
  .c-btn--lg { font-size: var(--fs-ui); }
  .c-btn--back { font-size: var(--fs-body-sm); }
}
@media (max-width: 767px) {
  /* タグは SP で 11px（正本） */
  .c-tag { font-size: 11px; }
}
@media (max-width: 767px) {
  /* 記事カードの日付（正本 11px） */
  .c-card__date { font-size: 11px; }
}

/* ============================================
   SP 正本のページ固有サイズ
   sp-*.dc.html はカードの役割ごとに見出しサイズを変えている。
   ============================================ */
@media (max-width: 767px) {
  /* 既定（下層ページのカード見出し） */
  .c-feature__title { font-size: 20px; }
  /* TOP「選ばれる理由」の根拠カード */
  .l-section--navy .c-feature.p-feature-row .c-feature__title { font-size: 21px; }
  /* プロダクト詳細の横並び行（ai-translation） */
  .c-feature--product .c-feature__title { font-size: 18px; }
  /* 絞り込みの業種タブは他より一段小さい（case） */
  [data-filter-group="ind"] .c-tab { font-size: 11px; padding: 8px 14px; }
  /* コラム一覧の記事カード見出し */
  .page-column .c-card__title { font-size: var(--fs-caption); }
  /* パートナー: ヒーロー見出しと最終セクションの見出しは一段小さい */
  .page-partner .l-hero__title { font-size: 26px; }
  .c-section-head__title--sm { font-size: 19px; }
}
@media (max-width: 767px) {
  .c-quote__text { font-size: var(--fs-ui); }
}
