/* 自社の改善事例。既存の共通ヘッダー・フッターを使い、ページ内だけ配色を合わせる。 */
.buyer-case {
  --color-paper: #fff8e6;
  --color-surface: #fffdf7;
  --color-surface-2: #f4eedf;
  --color-ink: #141a3d;
  --color-ink-2: #3a4270;
  --color-muted: #535875;
  --color-rule: #d9d3c5;
  --color-rule-strong: #9d9daa;
  --color-accent: #ffd93d;
  --color-accent-hover: #ffe266;
  --color-accent-ink: #141a3d;
  --color-focus: #3657ff;
  --color-focus-outer: #fffdf7;
  background: var(--color-paper);
  line-break: strict;
}
.buyer-case .case-wrap { max-width: 74rem; }
.buyer-case h1, .buyer-case h2 { letter-spacing: -.02em; line-height: 1.4; }
.buyer-case h1 { font-size: clamp(2rem, 4vw, 3.6rem); }
.buyer-case h2 { font-size: clamp(1.65rem, 3vw, 2.45rem); }
.buyer-case h3 { letter-spacing: 0; line-height: 1.55; font-size: clamp(1.15rem, 1.8vw, 1.4rem); }
.buyer-case .hdr__in { justify-content: space-between; gap: 1.2rem; }
.case-header-nav { display: flex; gap: 1.6rem; margin-left: auto; font-size: .9rem; font-weight: 700; }
.case-header-nav a { min-height: 2.75rem; display: flex; align-items: center; }
.buyer-case .btn { white-space: normal; line-height: 1.55; }
.buyer-case .btn--main { background: var(--color-accent); border-color: var(--color-ink); color: var(--color-ink); }
.buyer-case .btn--main:hover { background: var(--color-accent-hover); }
.buyer-case .case-hero { padding-block: 2rem 0; }
.case-breadcrumb { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 3rem; color: var(--color-muted); font-size: .8rem; }
.case-hero-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.case-label { display: inline-block; background: var(--color-accent); border: 1px solid var(--color-ink); padding: .3rem .8rem; margin-bottom: 1.25rem; font-weight: 700; font-size: .85rem; }
.case-lead { margin: 1.5rem 0; max-width: 36rem; font-size: 1.05rem; }
.case-business { border-left: 3px solid var(--color-ink); padding-left: 1rem; font-size: .9rem; color: var(--color-ink-2); }
.case-business b { color: var(--color-ink); font-size: 1.1rem; }
.case-note { margin: 1rem 0 0; color: var(--color-muted); font-size: .86rem; line-height: 1.85; }
.case-site-figure { margin: 0; align-self: center; }
.case-site-shot { display: block; border: 1px solid var(--color-ink); background: #141210; aspect-ratio: 960 / 476; }
.case-site-shot img { width: 100%; max-width: none; height: auto; }
.case-site-figure figcaption { margin-top: .85rem; font-size: .78rem; line-height: 1.8; color: var(--color-muted); }
.case-site-figure figcaption a { display: inline-block; margin-top: .35rem; color: var(--color-ink); font-weight: 700; }
.case-jump { display: flex; flex-wrap: wrap; gap: .75rem 2rem; padding-block: 1.6rem; margin-top: 3rem; border-top: 1px solid var(--color-ink); font-weight: 700; font-size: .86rem; }
.case-jump a { display: inline-flex; align-items: center; min-height: 2rem; }
.buyer-case .case-section { padding-block: 5rem; border-top: 1px solid var(--color-rule); }
.case-section--white { background: var(--color-surface); }
.case-section-head { max-width: 48rem; margin-bottom: 2.5rem; }
.case-section-head > p:last-child:not(.case-step) { margin: 1.3rem 0 0; max-width: 42rem; color: var(--color-ink-2); }
.case-step { margin-bottom: .8rem; font-size: .85rem; font-weight: 700; color: var(--color-muted); }
.case-editorial { display: grid; grid-template-columns: .95fr 1.05fr; gap: clamp(2rem, 5vw, 5rem); }
.case-editorial .case-section-head { margin: 0; }
.case-copy { max-width: 43rem; }
.case-copy > p { margin-bottom: 1.3rem; }
.case-change-list { border-top: 1px solid var(--color-ink); }
.case-change { display: grid; grid-template-columns: 2.5rem minmax(0, 1fr) 13rem; gap: 1.5rem; padding-block: 2rem; border-bottom: 1px solid var(--color-rule); align-items: start; }
.case-change-no { font-size: 1.2rem; font-weight: 700; }
.case-change p { margin: .8rem 0 0; color: var(--color-ink-2); }
.case-change .case-note { font-size: .8rem; }
.case-page-link { min-height: 3rem; display: block; padding: .85rem 1rem; border: 1px solid var(--color-ink); font-weight: 700; font-size: .9rem; line-height: 1.6; text-decoration: none; }
.case-page-link:hover { background: var(--color-paper); }
.case-page-link span { display: block; font-size: .73rem; font-weight: 400; color: var(--color-muted); margin-top: .35rem; }
.case-page-links { display: grid; gap: .8rem; }
.case-change-visual { grid-column: 2 / -1; width: min(100%, 48rem); margin: .5rem 0 0; }
.case-change-visual > a { display: block; border: 1px solid var(--color-rule); }
.case-change-visual img { width: 100%; }
.case-change-visual figcaption { margin-top: .8rem; color: var(--color-muted); font-size: .78rem; line-height: 1.8; }
.case-change-visual figcaption a { color: var(--color-ink); }
.case-change-visual--wide { width: min(100%, 53rem); }
.case-reading-note { margin-top: 1.5rem; max-width: 55rem; color: var(--color-muted); font-size: .85rem; }
.case-search, .case-inquiries { padding: clamp(1.5rem, 3vw, 2.5rem); background: var(--color-surface); border: 1px solid var(--color-rule); }
.case-inquiries { margin-top: 1.5rem; }
.case-result-heading { display: flex; align-items: start; justify-content: space-between; gap: 1.5rem; }
.case-result-heading p { margin: .15rem 0 0; font-size: .8rem; color: var(--color-muted); }
.case-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; margin: 2rem 0; }
.case-stats > div { border-top: 3px solid var(--color-accent); padding-top: 1rem; }
.case-stats dt { font-size: .85rem; }
.case-stats dd { margin: .5rem 0 0; font-size: clamp(1.8rem, 3.8vw, 3rem); font-weight: 700; line-height: 1.2; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.case-stats dd small { margin-left: .5rem; font-size: .8rem; font-weight: 400; letter-spacing: 0; }
.case-comparison { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 2rem; border-top: 1px solid var(--color-rule); }
.case-comparison > div { padding: 1.5rem 2rem 1rem 0; }
.case-comparison > div + div { padding-left: 2rem; border-left: 1px solid var(--color-rule); }
.case-period { margin: 0 0 .75rem; font-size: .85rem; font-weight: 700; }
.case-comparison-main { margin: 0 0 .75rem; font-size: .95rem; }
.case-comparison-main b { display: inline-block; margin-top: .15rem; font-size: clamp(1.7rem, 2.8vw, 2.25rem); line-height: 1.4; }
.case-comparison > div + div .case-comparison-main b { background: linear-gradient(transparent 65%, var(--color-accent) 65%); }
.case-comparison > div > p:last-child { font-size: .88rem; color: var(--color-ink-2); }
.case-result-notes { max-width: 58rem; padding-top: 1.5rem; margin-top: .5rem; border-top: 1px solid var(--color-rule); font-size: .83rem; color: var(--color-muted); }
.case-result-notes p { margin: 0; }
.case-result-notes b { display: block; margin-bottom: .4rem; color: var(--color-ink); }
.case-result-boundary { margin: 1.5rem 0 0; max-width: 56rem; color: var(--color-muted); font-size: .85rem; }
.case-materials { list-style: none; padding: 0; margin: 0 0 2rem; border-top: 1px solid var(--color-ink); }
.case-materials li { padding-block: 1.2rem; border-bottom: 1px solid var(--color-rule); }
.case-materials b { display: block; }
.case-materials span { display: block; margin-top: .3rem; color: var(--color-ink-2); font-size: .9rem; }
.case-actions { display: grid; justify-items: start; gap: 1.25rem; margin-top: 2rem; }
.case-secondary { min-height: 2.75rem; display: inline-flex; align-items: center; font-size: .9rem; font-weight: 700; }
.buyer-case .ft { background: var(--color-ink); color: var(--color-surface); padding-block: 2.5rem; }
.buyer-case .ft__btm { color: var(--color-surface); gap: 1.5rem; }
.buyer-case .ft__btm a { color: inherit; }
@media (max-width: 60rem) {
  .case-header-nav { display: none; }
  .case-hero-grid, .case-editorial { grid-template-columns: minmax(0, 1fr); }
  .case-site-figure { max-width: 44rem; }
  .case-editorial { gap: 2rem; }
  .case-change { grid-template-columns: 2rem minmax(0, 1fr); gap: 1rem; }
  .case-change > .case-page-link, .case-change > .case-page-links { grid-column: 2; max-width: 28rem; }
  .case-page-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 40rem) {
  .buyer-case .hdr__in { min-height: 4.5rem; gap: .75rem; }
  .buyer-case .hdr .btn { font-size: .75rem; padding: .6rem .65rem; min-height: 2.75rem; }
  .buyer-case .logo img { height: 34px; }
  .case-breadcrumb { margin-bottom: 2rem; }
  .case-hero-grid { gap: 2rem; }
  .case-jump { gap: .5rem 1.5rem; margin-top: 2rem; }
  .buyer-case .case-section { padding-block: 3rem; }
  .case-section-head { margin-bottom: 2rem; }
  .case-result-heading { display: block; }
  .case-result-heading p { margin-top: .7rem; }
  .case-stats { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; margin-block: 1.5rem; }
  .case-stats > div { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
  .case-stats dd { margin: 0; white-space: nowrap; }
  .case-result-notes { grid-template-columns: minmax(0, 1fr); }
  .case-comparison > div { padding-right: 1rem; }
  .case-comparison > div + div { padding-left: 1rem; }
  .case-comparison-main b { font-size: 1.5rem; }
  .case-page-links { grid-template-columns: minmax(0, 1fr); }
  .case-change-visual { grid-column: 1 / -1; }
  .case-actions { justify-items: stretch; }
  .case-secondary { justify-content: center; }
}
@media (max-width: 23rem) {
  .case-comparison { grid-template-columns: minmax(0, 1fr); }
  .case-comparison > div + div { padding-left: 0; border-left: 0; border-top: 1px solid var(--color-rule); }
  .case-stats > div { display: block; }
  .case-stats dd { margin-top: .5rem; }
}
