:root { --color-canvas:#F4F1E9; --color-ink:#18231F; --color-navy:#24343B; --color-forest:#435A4B; --color-warm-surface:#E8E0D3; --color-signal:#A65332; --color-white:#FCFBF8; --color-rule:rgba(84,73,60,.24); --content-max:1200px; --reading-max:720px; --radius-small:4px; --radius-medium:6px; --motion-fast:160ms; --motion-base:260ms; --motion-emphasis:520ms; --ease-enter:cubic-bezier(.16,1,.3,1); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--color-ink); background:var(--color-canvas); font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic UI","Yu Gothic",Meiryo,sans-serif; font-size:20px; line-height:1.95; letter-spacing:.05em; }
img { display:block; max-width:100%; }
a { color:inherit; }
h1,h2,h3,p { margin:0; }
h1,h2,h3 { font-weight:500; line-height:1.45; letter-spacing:.08em; }
h1 { font-size:clamp(2.25rem,4.25vw,4.8rem); }
h2 { font-size:clamp(1.8rem,3vw,3.15rem); }
h3 { font-size:1.4rem; }
p + p { margin-top:1.25rem; }
.skip-link { position:fixed; z-index:10; top:8px; left:8px; padding:8px 14px; background:var(--color-white); transform:translateY(-150%); transition:transform var(--motion-fast); }
.skip-link:focus { transform:translateY(0); }
.site-header { position:absolute; z-index:2; top:0; left:0; right:0; display:flex; align-items:center; justify-content:space-between; max-width:1440px; margin:auto; padding:28px clamp(24px,5vw,72px); }
.site-name { font-size:.92rem; font-weight:700; text-decoration:none; }
.header-cta { font-size:.84rem; font-weight:700; text-underline-offset:5px; }
.hero { min-height:92svh; display:grid; grid-template-columns:minmax(400px,44%) 1fr; align-items:stretch; background:var(--color-white); }
.hero-copy { display:flex; flex-direction:column; justify-content:center; padding:130px clamp(32px,7vw,120px) 72px; }
.eyebrow,.section-mark { color:var(--color-signal); font-size:1rem; font-weight:700; letter-spacing:.15em; }
.hero h1 { margin-top:22px; }
.hero-body { max-width:38em; margin-top:36px; font-size:clamp(1.1rem,1.2vw,1.25rem); }
.hero-name { margin-top:26px; font-size:1.15rem; font-weight:700; }
.button { display:inline-flex; align-items:center; justify-content:space-between; gap:28px; min-height:48px; padding:12px 20px; border:1px solid transparent; border-radius:var(--radius-small); font:inherit; font-size:.94rem; font-weight:700; line-height:1.4; letter-spacing:.06em; text-decoration:none; cursor:pointer; transition:background var(--motion-base),color var(--motion-base),transform var(--motion-fast),border-color var(--motion-base); }
.button-primary { width:min(100%,340px); margin-top:26px; color:var(--color-white); background:var(--color-signal); }
.button:hover { transform:translateY(-2px); }
.button-primary:hover { background:#844024; }
.support-copy { max-width:28em; margin-top:16px; font-size:.88rem; line-height:1.75; }
.hero-visual { min-height:92svh; margin:0; overflow:hidden; background:var(--color-warm-surface); }
.hero-visual img { width:100%; height:100%; object-fit:cover; object-position:48% 34%; opacity:.96; filter:saturate(.9) sepia(.04) contrast(.97); animation:hero-photo var(--motion-emphasis) var(--ease-enter) forwards; }
@keyframes hero-photo { to { opacity:1; } }
.section { max-width:var(--content-max); margin:auto; padding:clamp(88px,12vw,176px) clamp(24px,5vw,72px); }
.reading-column { width:min(100%,var(--reading-max)); }
.reading-column h2,.section-heading h2,.process-intro h2,.experience h2,.profile h2,.consultation h2 { margin-top:16px; }
.letter { padding-left:clamp(24px,15vw,240px); }
.letter-body { margin-top:50px; font-size:1.18rem; }
.situations { border-top:1px solid var(--color-rule); }
.section-heading { max-width:760px; }
.section-heading > p:last-child { margin-top:30px; }
.situation-diagram { --situation-gap:clamp(60px,9vw,140px); position:relative; margin-top:clamp(52px,7vw,78px); }
.situation-core { position:relative; width:fit-content; max-width:100%; margin:0 auto 66px; padding:16px 34px 18px; border:1px solid var(--color-rule); border-top:2px solid var(--color-signal); background:rgba(252,251,248,.7); text-align:center; }
.situation-core span { display:block; color:var(--color-signal); font-size:.78rem; font-weight:700; letter-spacing:.12em; }
.situation-core strong { display:block; margin-top:3px; font-family:var(--font-serif); font-size:1.36rem; letter-spacing:.04em; }
.situation-core::after { position:absolute; top:100%; left:50%; width:1px; height:66px; background:var(--color-rule); content:""; }
.situation-list { position:relative; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 var(--situation-gap); margin:0; padding:0; list-style:none; }
.situation-list::before { position:absolute; top:-1px; bottom:0; left:50%; width:1px; background:var(--color-rule); content:""; }
.situation-list li { position:relative; display:grid; grid-template-columns:58px 1fr; gap:16px; padding:28px 0 36px; border-top:1px solid var(--color-rule); }
.situation-list-five li:nth-child(-n+3)::after { position:absolute; top:-1px; left:100%; width:calc(var(--situation-gap) / 2); height:1px; background:var(--color-rule); content:""; }
.situation-list-five li:nth-child(n+4)::before { position:absolute; top:-1px; right:100%; width:calc(var(--situation-gap) / 2); height:1px; background:var(--color-rule); content:""; }
.situation-list-five li:nth-child(1) { grid-area:1/1; }
.situation-list-five li:nth-child(2) { grid-area:2/1; }
.situation-list-five li:nth-child(3) { grid-area:3/1; }
.situation-list-five li:nth-child(4) { grid-area:1/2; }
.situation-list-five li:nth-child(5) { grid-area:2/2; }
.situation-list span,.process-steps li>span { color:var(--color-signal); font-family:Georgia,serif; font-size:1.18rem; font-weight:400; line-height:1.5; letter-spacing:.08em; }
.situation-list p,.process-steps p,.capability-map p { margin-top:10px; font-size:1.12rem; line-height:1.9; }
.visual-break { position:relative; width:100%; height:clamp(340px,52vw,680px); margin:0; overflow:hidden; background:var(--color-warm-surface); }
.visual-break img { width:100%; height:100%; object-fit:cover; object-position:58% 52%; filter:saturate(.88) sepia(.06) contrast(.96); }
.visual-break figcaption { position:absolute; left:max(24px,calc((100% - var(--content-max))/2)); bottom:clamp(24px,4vw,52px); max-width:min(560px,calc(100% - 48px)); padding:13px 18px 15px; color:var(--color-white); background:rgba(24,35,31,.84); font-size:.9rem; line-height:1.7; }
.visual-break-personal { height:clamp(380px,50vw,680px); }
.visual-break-personal img { object-position:50% 38%; filter:saturate(.72) sepia(.08) contrast(.96); }
.annotated-photo { position:relative; overflow:hidden; border-radius:var(--radius-medium); }
.photo-note { position:absolute; display:flex; align-items:center; gap:9px; padding:6px 10px 7px; color:var(--color-ink); background:rgba(244,241,233,.92); border-left:2px solid var(--color-signal); font-size:.72rem; font-weight:700; line-height:1.35; letter-spacing:.08em; white-space:nowrap; }
.photo-note::after { display:block; width:clamp(28px,4vw,54px); height:1px; background:var(--color-signal); content:""; }
.photo-note-right { flex-direction:row-reverse; border-right:2px solid var(--color-signal); border-left:0; }
.listen-dialogue { top:10%; left:5%; }.listen-flow { right:5%; bottom:12%; }
.ai-paper { bottom:18%; left:5%; }.ai-digital { top:10%; right:5%; }
.section-closing { margin-top:28px; font-weight:700; }
.process { display:block; background:var(--color-warm-surface); max-width:none; padding-left:max(24px,calc((100% - var(--content-max))/2)); padding-right:max(24px,calc((100% - var(--content-max))/2)); }
.process-intro { max-width:none; }
.process-intro h2 { margin-bottom:35px; }
.explanatory-image { margin:0; overflow:hidden; border-radius:var(--radius-medium); }
.explanatory-image img { width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; filter:saturate(.9) sepia(.04) contrast(.97); }
.explanatory-image figcaption { margin-top:12px; color:#53605b; font-size:.95rem; line-height:1.75; }
.process-image { margin-top:38px; }
.process-steps { position:relative; margin-top:clamp(62px,7vw,92px); }
.process-steps ol { position:relative; z-index:1; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; margin:0; padding:0; list-style:none; }
.process-steps li { position:relative; min-width:0; padding:52px clamp(18px,2.2vw,30px) 0; border-top:1px solid var(--color-rule); }
.process-steps li::before { position:absolute; top:-6px; left:clamp(18px,2.2vw,30px); width:11px; height:11px; border:1px solid var(--color-signal); background:var(--color-warm-surface); border-radius:50%; content:""; }
.process-steps li:not(:last-child)::after { position:absolute; z-index:2; top:-6px; right:calc(10px - clamp(18px,2.2vw,30px)); width:0; height:0; border-top:6px solid transparent; border-bottom:6px solid transparent; border-left:11px solid var(--color-signal); content:""; }
.process-steps .process-number { display:block; margin-bottom:9px; font-size:1rem; }
.process-steps h3 { font-size:clamp(1.22rem,1.8vw,1.55rem); }
.process-steps .process-summary { margin-top:7px; color:var(--color-signal); font-size:.94rem; font-weight:700; letter-spacing:.04em; }
.process-steps .process-detail { margin-top:18px; font-size:1rem; line-height:1.85; }
.process-line { position:absolute; z-index:0; top:0; left:0; width:100%; height:1px; background:var(--color-signal); transform:scaleX(0); transform-origin:left center; opacity:.35; transition:transform 1.2s var(--ease-enter); }
.process-steps.is-visible .process-line { transform:scaleX(1); }
.quiet-statement { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,.8fr); gap:clamp(48px,8vw,110px); align-items:center; background:var(--color-navy); color:var(--color-white); }
.quiet-statement .section-mark { color:#e6aa7f; }
.quiet-statement .reading-column>div { margin-top:42px; font-size:1.18rem; }
.quiet-statement .explanatory-image figcaption { color:#d8e0dc; }
.emphasis { padding-left:18px; border-left:2px solid var(--color-rule); font-weight:700; }
.experience { display:grid; grid-template-columns:1.2fr .8fr; gap:clamp(48px,10vw,150px); }
.experience-copy { max-width:740px; }
.experience-copy>p:not(.section-mark) { margin-top:24px; }
.experience ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px 35px; margin:28px 0; padding:24px 0 24px 1.3em; border-block:1px solid var(--color-rule); }
.facts { align-self:center; margin:0; border-top:1px solid var(--color-rule); }
.facts div { display:flex; justify-content:space-between; gap:18px; padding:20px 0; border-bottom:1px solid var(--color-rule); }
.facts dt { font-size:1rem; }.facts dd { margin:0; font-family:Georgia,serif; font-size:2rem; }
.capabilities { border-top:1px solid var(--color-rule); }
.capability-map { position:relative; margin-top:clamp(55px,7vw,82px); }
.capability-core { position:relative; width:max-content; margin:0 auto 66px; padding:17px 36px 19px; border:1px solid var(--color-rule); border-top:2px solid var(--color-signal); background:rgba(252,251,248,.68); text-align:center; }
.capability-core span { display:block; color:var(--color-signal); font-size:.78rem; font-weight:700; letter-spacing:.12em; }
.capability-core strong { display:block; margin-top:3px; font-family:var(--font-serif); font-size:1.5rem; letter-spacing:.04em; }
.capability-core::after { position:absolute; top:100%; left:50%; width:1px; height:34px; background:var(--color-rule); content:""; }
.capability-branches { position:relative; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(30px,5vw,72px); }
.capability-branches::before { position:absolute; top:-32px; left:16.666%; right:16.666%; height:1px; background:var(--color-rule); content:""; }
.capability-group { position:relative; padding:31px 0 0; border-top:1px solid var(--color-rule); }
.capability-group::before { position:absolute; bottom:100%; left:50%; width:1px; height:32px; background:var(--color-rule); content:""; }
.capability-group::after { position:absolute; top:-5px; left:calc(50% - 5px); width:9px; height:9px; border:1px solid var(--color-signal); background:var(--color-canvas); border-radius:50%; content:""; }
.capability-group-number { margin:0; color:var(--color-signal); font-family:Georgia,serif; font-size:.9rem; letter-spacing:.1em; }
.capability-group h3 { margin-top:5px; font-size:clamp(1.25rem,1.8vw,1.52rem); }
.capability-items { margin-top:23px; }
.capability-items article { padding:19px 0 22px; border-top:1px solid var(--color-rule); }
.capability-items h4 { margin:0; font-size:1.08rem; letter-spacing:.035em; }
.capability-items p { margin-top:8px; font-size:1rem; line-height:1.85; }
.profile { display:grid; grid-template-columns:minmax(280px,.82fr) 1.18fr; gap:clamp(35px,8vw,110px); align-items:start; }
.profile figure { position:sticky; top:20px; margin:0; aspect-ratio:4/5; overflow:hidden; background:var(--color-warm-surface); border-radius:var(--radius-medium); }.profile figure img { width:100%; height:100%; object-fit:cover; object-position:52% center; filter:saturate(.9) sepia(.04) contrast(.97); }
.profile-copy>div:not(.profile-signature) { max-width:38em; margin-top:38px; }.profile-signature { margin-top:43px; padding-top:23px; border-top:1px solid var(--color-rule); }.profile-signature p:first-child { font-weight:700; }.profile-signature p:nth-child(2) { margin-top:2px; font-size:1rem; }.profile-signature small { display:block; margin-top:17px; line-height:1.85; }
.profile-text-only { display:block; }
.profile-text-only .profile-copy { width:min(100%,800px); margin:0 auto; }
.consultation { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(45px,10vw,145px); background:var(--color-warm-surface); max-width:none; padding-left:max(24px,calc((100% - var(--content-max))/2)); padding-right:max(24px,calc((100% - var(--content-max))/2)); }.consultation-copy { max-width:35em; }.consultation-copy>p { margin-top:22px; }.consultation-copy h3 { margin-top:34px; font-size:1.12rem; }.consultation-copy ul { margin:14px 0 0; padding-left:1.3em; }.consultation-form { align-self:start; padding:clamp(32px,4vw,56px); background:rgba(252,251,248,.76); border:1px solid var(--color-rule); border-top:2px solid var(--color-signal); border-radius:var(--radius-medium); }.form-label { color:var(--color-forest); font-size:1.25rem; font-weight:700; }.form-redirect > p:not(:first-child) { margin-top:20px; }.form-redirect .button { margin-top:32px; }.form-note { color:#53605b; font-size:.86rem; }
.final-message { position:relative; overflow:hidden; padding:clamp(96px,14vw,190px) 24px; color:var(--color-white); background:var(--color-forest); }.final-message>div { position:relative; z-index:1; width:min(100%,var(--reading-max)); margin:auto; }.final-message h2 { margin-bottom:38px; }.final-message .final-name { margin-top:35px; font-weight:700; }.button-light { width:min(100%,340px); margin-top:27px; color:var(--color-forest); background:var(--color-white); }.button-light:hover { background:var(--color-canvas); }footer { display:flex; justify-content:space-between; gap:24px; padding:22px clamp(24px,5vw,72px); color:#e4ece7; background:var(--color-ink); font-size:.72rem; line-height:1.6; } footer p+p { margin:0; }
:focus-visible { outline:3px solid #d87047; outline-offset:3px; }
@media (max-width:1100px) {
  .situation-diagram { margin-top:42px; padding-left:25px; }
  .situation-core { margin:0 0 52px; padding-inline:24px; }
  .situation-core::after { left:25px; height:52px; }
  .situation-list { grid-template-columns:1fr; gap:0; margin:0; }
  .situation-list::before { display:none; }
  .situation-list-five li:nth-child(n),.situation-list-four li:nth-child(n) { grid-area:auto; margin-left:25px; padding:25px 0 30px 32px; border-top:0; border-left:1px solid var(--color-rule); }
  .situation-list-five li:nth-child(-n+3)::after { display:none; }
  .situation-list-five li:nth-child(n)::before { position:absolute; top:30px; right:auto; left:0; display:block; width:22px; height:1px; background:var(--color-rule); content:""; }
}
@media (max-width:800px) {
  .site-header { padding:20px 24px; }.header-cta { display:none; }.hero { grid-template-columns:1fr; }.hero-copy { order:2; padding:50px 24px 72px; }.hero-visual { order:1; min-height:52svh; margin-top:0; }.hero-visual img { object-position:50% 30%; }.hero h1 { font-size:clamp(2rem,9.5vw,3.1rem); }.hero-body { margin-top:27px; }.letter { padding-left:24px; }.quiet-statement,.experience,.profile,.consultation { grid-template-columns:1fr; }.quiet-statement { gap:42px; }.experience { gap:45px; }.facts { max-width:500px; }.profile figure { position:relative; top:auto; width:min(100%,500px); aspect-ratio:4/3; }.consultation-form { padding:28px 22px; } footer { display:block; } footer p+p { margin-top:8px; }
  .process-steps { max-width:680px; margin-top:55px; padding-left:30px; }
  .process-steps ol { grid-template-columns:1fr; gap:30px; }
  .process-steps li { display:grid; grid-template-columns:52px minmax(0,1fr); gap:17px; padding:0 0 30px 25px; border-top:0; }
  .process-steps li::before { top:7px; left:-20px; }
  .process-steps li:not(:last-child)::after { top:auto; right:auto; bottom:-26px; left:-15px; border-top:11px solid var(--color-signal); border-right:6px solid transparent; border-bottom:0; border-left:6px solid transparent; }
  .process-steps .process-number { margin:1px 0 0; }
  .process-line { top:12px; bottom:12px; left:15px; width:1px; height:auto; transform:scaleY(0); transform-origin:center top; }
  .process-steps.is-visible .process-line { transform:scaleY(1); }
  .capability-map { margin-top:48px; padding-left:25px; }
  .capability-core { margin:0 0 52px; }
  .capability-core::after { left:25px; height:52px; }
  .capability-branches { grid-template-columns:1fr; gap:30px; }
  .capability-branches::before { top:-52px; right:auto; bottom:0; left:25px; width:1px; height:auto; }
  .capability-group { padding:25px 0 0 36px; border-top:0; border-left:1px solid var(--color-rule); }
  .capability-group::before { top:25px; right:auto; bottom:auto; left:0; width:24px; height:1px; }
  .capability-group::after { top:20px; left:-5px; }
}
@media (max-width:480px) { body { font-size:18px; }.section { padding:80px 24px; }.hero-visual { min-height:43svh; }.hero-copy { padding-top:39px; }.button,.button-primary,.button-light { width:100%; }.experience ul { grid-template-columns:1fr; }.consultation-copy ul { font-size:1.1rem; }.profile-copy>div:not(.profile-signature) { margin-top:28px; }.process-steps { padding-left:18px; }.process-steps li { grid-template-columns:42px minmax(0,1fr); padding-left:22px; }.process-steps li::before { left:-14px; }.process-steps li:not(:last-child)::after { left:-9px; }.process-line { left:9px; }.capability-map { padding-left:7px; }.capability-core { width:100%; padding-inline:18px; }.capability-core::after,.capability-branches::before { left:18px; }.capability-group { padding-left:29px; }.photo-note { gap:6px; padding:5px 7px 6px; font-size:.62rem; }.photo-note::after { width:24px; }.visual-break { height:clamp(300px,86vw,420px); }.visual-break img { object-position:64% 50%; }.visual-break-personal img { object-position:50% 34%; }.visual-break figcaption { left:18px; bottom:18px; max-width:calc(100% - 36px); padding:10px 13px 12px; font-size:.76rem; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; transition-duration:.01ms !important; }.process-line { transform:none; } }

/* ================================================================
   v2 画像カンプからの移植（2026-08-31）
   根拠: 03_知識ベース/Design_Library/50_Winning_Patterns/
         2026_08_30_AI画像生成への指示は3層に分ける.md
   ================================================================ */

/* --- 1. 見出しを明朝に。格式の大半はここから来ている --- */
:root { --font-serif:"Hiragino Mincho ProN","Yu Mincho",YuMincho,"Noto Serif JP","Times New Roman",serif; }
h1,h2,h3 { font-family:var(--font-serif); font-weight:600; }
.hero-name,.facts dd { font-family:var(--font-serif); }

/* --- 2. 実績セクションに緩急をつける ---
   v1の失敗形は「同寸カードの反復」。1つ目を全面色面で反転し、
   2つ目は地の色へ戻し、3・4つ目は小さく置いて密度を落とす。 */
.cases { border-top:1px solid var(--color-rule); }
.case-list { display:grid; gap:0; margin:56px 0 0; padding:0; list-style:none; }
.case > p:last-child { max-width:44em; margin-top:14px; font-size:1.12rem; line-height:1.9; }
.case h3 { margin-top:6px; }
.case-index { color:var(--color-signal); font-family:Georgia,serif; font-size:1.18rem; font-weight:400; line-height:1.5; letter-spacing:.08em; }

/* 大数字。数字が主役になる高さを持たせる */
.case-figure { display:flex; flex-wrap:wrap; align-items:baseline; gap:.1em .3em; margin-top:24px; font-family:var(--font-serif); line-height:1.05; }
.fig-num { font-size:clamp(2.9rem,8.5vw,5.4rem); font-weight:600; letter-spacing:.02em; }
.fig-unit { font-size:clamp(1.05rem,2.3vw,1.55rem); font-weight:600; }
.fig-arrow { margin:0 .2em; font-size:clamp(1.5rem,3.8vw,2.6rem); }

/* 01: 全面色面で反転。セクションの左右パディング分だけ外へ出す */
.case-lead { margin-inline:calc(-1 * clamp(24px,5vw,72px)); padding:clamp(36px,5vw,58px) clamp(24px,5vw,72px); color:var(--color-white); background:var(--color-forest); }
.case-lead .case-index { color:#e6aa7f; }
.case-lead .fig-num,.case-lead .fig-unit,.case-lead .fig-arrow { color:var(--color-white); }

/* 02: 地の色へ戻し、細罫1本だけ */
.case-second { padding:clamp(38px,5vw,60px) 0 clamp(40px,6vw,64px); border-bottom:1px solid var(--color-rule); }
.case-second .fig-num,.case-second .fig-unit,.case-second .fig-arrow { color:var(--color-forest); }

/* 03・04: 密度を落とす */
.case-quiet { padding:30px 0 34px; }
.case-quiet h3 { font-size:1.22rem; }
.cases-note { max-width:52em; margin-top:34px; color:#53605b; font-size:.88rem; line-height:1.75; }

@media (min-width:801px) {
  .case-list { grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:clamp(30px,8vw,110px); }
  .case-lead,.case-second { grid-column:1 / -1; }
  .case-quiet { border-top:1px solid var(--color-rule); padding-top:30px; }
  .process-intro { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,.82fr); column-gap:clamp(55px,8vw,118px); align-items:start; }
  .process-intro > :not(.process-image) { grid-column:1; }
  .process-image { grid-column:2; grid-row:1 / span 6; align-self:end; margin-top:0; }
}

/* --- 3. FVの見出しを、意図した2行で収める（2026-08-31）---
   原因: .hero-copy の内寸より「人を責めずに、」の実寸が広く、4行に割れていた。
   文字を小さくするのではなく、コラムを広げて左右の余白と字送りを詰めて解決する。 */
.hero h1 { letter-spacing:.04em; }

@media (min-width:801px) {
  .hero { grid-template-columns:minmax(420px,50%) 1fr; }
  .hero-copy { padding:130px clamp(24px,3.5vw,72px) 72px; }
  .hero h1 { font-size:clamp(2.25rem,4vw,4.6rem); }

  /* セクションの役割に応じて、縦の余白へ緩急をつける。 */
  .section { padding-top:clamp(96px,9vw,144px); padding-bottom:clamp(96px,9vw,144px); }
  .letter,
  .profile,
  .consultation { padding-top:clamp(112px,10vw,160px); padding-bottom:clamp(112px,10vw,160px); }
  .situations,
  .cases,
  .capabilities { padding-top:clamp(88px,8vw,128px); padding-bottom:clamp(88px,8vw,128px); }
}

/* --- 4. 広いPC画面で、見出しの末尾だけが次行へ落ちるのを防ぐ ---
   HTMLで指定した2行を維持し、長い見出しだけ表示領域に収まる寸法へ調整する。 */
@media (min-width:1101px) {
  .keep-line { white-space:nowrap; }
  .consultation { grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(50px,5vw,90px); }
  .situations .section-heading,
  .capabilities .section-heading { max-width:1000px; }
  #situations-title,
  #capabilities-title { font-size:clamp(2.35rem,2.6vw,2.65rem); letter-spacing:.06em; }
  #process-title,
  #ai-title { font-size:clamp(2.1rem,2.25vw,2.35rem); letter-spacing:.06em; }
  #consultation-title { font-size:clamp(1.8rem,2vw,2rem); letter-spacing:.05em; }
  #final-title { font-size:clamp(2.1rem,2.4vw,2.35rem); letter-spacing:.06em; }
}
