/* =========================================================
   木村広報設計室｜日本語大型文字組版 共通固定レイヤー
   2026-08-07

   原則
   - FHD: HTMLに置いた編集改行を保持する。
   - 4K: 文字を巨大化せず、読書幅を広げる。
   - Mobile: 文字数任せの分断を避け、文節単位の自然改行を優先する。
   - 本文は通常の自然改行を維持する。
   ========================================================= */

/* Large Japanese copy: prohibit emergency character-by-character breaking. */
h1,h2,.contact-title,.page-hero .dek,
.yk-record-dek,.yk-record-statement p,.yk-record-ending p,
.form-record .fr-title,.form-record .fr-display,.form-record .fr-act-heading,
.form-record .fr-dir-conclusion,.form-record .fr-epilogue-title,
.form-record .fr-observe-step p{
  line-break:strict;
  overflow-wrap:normal;
}

/* ---------------- Desktop / FHD / 4K ---------------- */
@media (min-width:901px){
  /* Restore the approved subpage editorial measure. */
  .page-hero{min-height:var(--stable-svh-72, 72svh);padding-top:160px;padding-bottom:80px}
  .page-hero h1{max-width:1100px;font-size:clamp(42px,5.3vw,88px);line-height:1.42}
  .page-hero .dek{max-width:760px;margin-top:30px;font-size:clamp(17px,1.5vw,22px);line-height:2}
  .meta-line{margin-top:34px}

  .content-grid{
    grid-template-columns:minmax(640px,.96fr) minmax(0,1fr);
    gap:clamp(52px,5vw,82px);
  }
  .content-heading .num{margin-bottom:20px}
  .content-heading h2{
    max-width:none;
    font-size:clamp(32px,2.45vw,44px);
    line-height:1.62;
    letter-spacing:.045em;
    white-space:nowrap;
    word-break:keep-all;
    text-wrap:nowrap;
  }
  .content-body{max-width:820px}

  /* Top-page editorial headings. */
  .intro-grid h2,.method-head h2,.records-band h2,.contact-title{
    word-break:keep-all;
    overflow-wrap:normal;
  }
  .contact-title-line{white-space:nowrap}

  /* 山に生きる人。Works */
  .yamanikiru-work .content-heading h2,
  .yamanikiru-work .yk-reading h2,
  .yamanikiru-work .yk-title-shift h2,
  .yamanikiru-work .yk-object-copy h2,
  .yamanikiru-work .yk-record-link h2{
    font-size:clamp(34px,2.6vw,48px);
    line-height:1.62;
    letter-spacing:.045em;
    white-space:nowrap;
    word-break:keep-all;
    overflow-wrap:normal;
    text-wrap:nowrap;
  }
  .yamanikiru-work .yk-record-link{
    grid-template-columns:minmax(620px,1fr) minmax(0,1fr);
    gap:clamp(60px,5vw,86px);
  }

  /* 写真集形成記録: FHDの字格を上限とし、4Kでは器だけ広げる。 */
  .yamanikiru-record-page .yk-record-hero-inner,
  .yamanikiru-record-page .yk-record-grid{
    width:min(100%,1320px);
    max-width:none;
  }
  .yamanikiru-record-page .yk-record-hero h1{
    max-width:1320px;
    font-size:clamp(62px,4.6vw,88px);
    line-height:1.48;
    letter-spacing:.055em;
    white-space:nowrap;
    word-break:keep-all;
    overflow-wrap:normal;
    text-wrap:nowrap;
  }
  .yamanikiru-record-page .yk-record-dek{
    font-size:clamp(30px,2.3vw,42px);
    line-height:1.82;
    white-space:nowrap;
    word-break:keep-all;
    overflow-wrap:normal;
    text-wrap:nowrap;
  }
  .yamanikiru-record-page .yk-record-grid{
    grid-template-columns:220px minmax(0,960px);
    gap:70px;
  }
  .yamanikiru-record-page .yk-record-section h2{
    max-width:960px;
    font-size:clamp(42px,3vw,58px);
    line-height:1.62;
    letter-spacing:.045em;
    white-space:nowrap;
    word-break:keep-all;
    overflow-wrap:normal;
    text-wrap:nowrap;
  }

  /* 木気両義型シンボル: 2560px以上でも字を再拡大しない。 */
  .form-record{
    --fr-reading:1060px;
    --fr-wide:1480px;
    --fr-side:clamp(72px,6vw,124px);
  }
  .form-record .fr-reading,
  .form-record .fr-cut08 .fr-reading{max-width:none}
  .form-record .fr-title{
    max-width:none;
    font-size:clamp(60px,3.3vw,78px);
    line-height:1.5;
    word-break:keep-all;
    overflow-wrap:normal;
  }
  .form-record .fr-display{
    max-inline-size:none;
    font-size:clamp(42px,2.7vw,58px);
    line-height:1.62;
    letter-spacing:.05em;
    word-break:normal;
    overflow-wrap:normal;
    text-wrap:pretty;
  }
  .form-record .fr-display--b{font-size:clamp(36px,2.2vw,44px)}
  .form-record .fr-display--c{font-size:clamp(28px,1.65vw,36px)}
  .form-record .fr-act-heading{font-size:clamp(36px,2.25vw,48px)}
  .form-record .fr-epilogue-title{font-size:clamp(36px,2.2vw,48px);line-height:1.72}
  .form-record .fr-semantic-line{
    display:inline-block;
    white-space:nowrap;
    word-break:keep-all;
    overflow-wrap:normal;
    text-wrap:nowrap;
  }
  .form-record br.fr-editorial-break,
  .form-record br.fr-editorial-break--wide{display:block}
  .form-record .fr-observation-grid{
    grid-template-columns:minmax(0,1.15fr) minmax(540px,.72fr);
    gap:clamp(70px,6vw,120px);
  }
  .form-record .fr-observe-step p{
    font-size:clamp(32px,1.9vw,38px);
    line-height:1.72;
    letter-spacing:.045em;
    white-space:nowrap;
    word-break:keep-all;
    text-wrap:nowrap;
  }
}

/* 4K gets more measure, never a new oversized type scale. */
@media (min-width:2560px){
  .content-grid{grid-template-columns:minmax(680px,.96fr) minmax(0,1fr)}
  .yamanikiru-record-page .yk-record-hero-inner,
  .yamanikiru-record-page .yk-record-grid{width:min(100%,1400px)}
  .yamanikiru-record-page .yk-record-grid{grid-template-columns:240px minmax(0,1000px);gap:80px}
  .yamanikiru-record-page .yk-record-hero h1{font-size:88px;max-width:1400px}
  .yamanikiru-record-page .yk-record-section h2{font-size:58px;max-width:1000px}
  .form-record{
    --fr-reading:1120px;
    --fr-wide:1600px;
    --fr-side:clamp(140px,5vw,190px);
  }
  .form-record .fr-title{font-size:78px}
  .form-record .fr-display{font-size:58px}
  .form-record .fr-display--b{font-size:44px}
  .form-record .fr-display--c{font-size:36px}
  .form-record .fr-epilogue-title{font-size:48px}
}

/* ---------------- Tablet / smartphone ---------------- */
@media (max-width:900px){
  .page-hero h1,.page-hero .dek,
  .content-heading h2,
  .intro-grid h2,.method-head h2,.records-band h2,.contact-title,
  .yamanikiru-work h1,.yamanikiru-work h2,
  .yamanikiru-record-page .yk-record-hero h1,
  .yamanikiru-record-page .yk-record-section h2,
  .yamanikiru-record-page .yk-record-dek,
  .form-record .fr-title,.form-record .fr-display,.form-record .fr-act-heading,
  .form-record .fr-dir-conclusion,.form-record .fr-epilogue-title,
  .form-record .fr-observe-step p{
    white-space:normal;
    word-break:normal;
    overflow-wrap:normal;
    text-wrap:pretty;
    line-break:strict;
  }
  @supports (word-break:auto-phrase){
    .page-hero h1,.page-hero .dek,
    .content-heading h2,
    .intro-grid h2,.method-head h2,.records-band h2,.contact-title,
    .yamanikiru-work h1,.yamanikiru-work h2,
    .yamanikiru-record-page .yk-record-hero h1,
    .yamanikiru-record-page .yk-record-section h2,
    .yamanikiru-record-page .yk-record-dek,
    .form-record .fr-title,.form-record .fr-display,.form-record .fr-act-heading,
    .form-record .fr-dir-conclusion,.form-record .fr-epilogue-title,
    .form-record .fr-observe-step p{
      word-break:auto-phrase;
    }
  }

  .content-heading h2{font-size:clamp(28px,5.5vw,40px);line-height:1.65;letter-spacing:.04em}
  .yamanikiru-record-page .yk-record-grid{grid-template-columns:1fr;width:100%;gap:26px}
  .yamanikiru-record-page .yk-record-hero h1{font-size:clamp(38px,8vw,54px);line-height:1.55}
  .yamanikiru-record-page .yk-record-section h2{font-size:clamp(28px,5.6vw,38px);line-height:1.7}
  .form-record .fr-semantic-line{display:inline;white-space:normal;word-break:normal;overflow-wrap:normal;text-wrap:pretty}
  @supports (word-break:auto-phrase){.form-record .fr-semantic-line{word-break:auto-phrase}}
}

@media (max-width:560px){
  /* 『山に生きる人。』は切らない。狭幅端末では題名そのものを縮めて収める。 */
  .yamanikiru-work .page-hero h1{
    font-size:clamp(28px,8.8vw,36px);
    line-height:1.52;
    letter-spacing:.045em;
  }
  .yamanikiru-work .page-hero h1 .keep{white-space:nowrap}
  .case-book .case-meta h3{
    font-size:clamp(27px,8.2vw,34px);
    letter-spacing:.055em;
  }
  .case-book .case-meta h3 .keep{white-space:nowrap}
  .yamanikiru-work{overflow-x:clip}
  .yamanikiru-work main,.yamanikiru-work main>section{max-width:100%}
  /* Standalone section headings share the same mobile scale; this prevents
     compound verbs such as 「行こう」「として」 from being split. */
  .section-inner > h2{font-size:clamp(20px,6.1vw,24px);line-height:1.72;letter-spacing:.025em}

  /* Content headings: enough scale for hierarchy, small enough to keep phrases intact. */
  .content-heading h2{
    font-size:clamp(20px,6.15vw,25px);
    line-height:1.74;
    letter-spacing:.025em;
  }
  .page-hero h1{font-size:clamp(34px,10.5vw,48px);line-height:1.48}
  .page-hero .dek{font-size:clamp(18px,5.8vw,23px);line-height:1.85}
  .contact h2,.contact-title{font-size:clamp(20px,6vw,26px);line-height:1.72}

  .yamanikiru-work .content-heading h2,
  .yamanikiru-work .yk-reading h2,
  .yamanikiru-work .yk-title-shift h2,
  .yamanikiru-work .yk-object-copy h2,
  .yamanikiru-work .yk-record-link h2{
    font-size:clamp(20px,6.2vw,25px);
    line-height:1.74;
    letter-spacing:.025em;
    white-space:normal;
    text-wrap:pretty;
  }
  @supports (word-break:auto-phrase){
    .yamanikiru-work .content-heading h2,
    .yamanikiru-work .yk-reading h2,
    .yamanikiru-work .yk-title-shift h2,
    .yamanikiru-work .yk-object-copy h2,
    .yamanikiru-work .yk-record-link h2{word-break:auto-phrase}
  }

  .yamanikiru-record-page .yk-record-hero h1{
    font-size:clamp(22px,6.4vw,27px);
    line-height:1.68;
    letter-spacing:.025em;
  }
  .yamanikiru-record-page .yk-record-dek{font-size:clamp(20px,5.8vw,24px);line-height:1.8}
  .yamanikiru-record-page .yk-record-section h2{
    font-size:clamp(19px,5.8vw,23px);
    line-height:1.78;
    letter-spacing:.02em;
  }

  .form-record .fr-title{font-size:clamp(25px,7.8vw,32px);line-height:1.6;letter-spacing:.045em}
  .form-record .fr-display{font-size:clamp(24px,7vw,28px);line-height:1.72;letter-spacing:.025em}
  .form-record .fr-display--b{font-size:clamp(20px,6.1vw,24px)}
  .form-record .fr-display--c{font-size:clamp(18px,5.4vw,21px)}
  .form-record .fr-act-heading{font-size:clamp(21px,6.2vw,25px);line-height:1.72}
  .form-record .fr-epilogue-title{font-size:clamp(21px,6.2vw,25px);line-height:1.75}
  .form-record .fr-observe-step p{
    font-size:clamp(20px,5.8vw,24px);
    line-height:1.75;
    letter-spacing:.02em;
    white-space:normal;
    text-wrap:pretty;
  }
  @supports (word-break:auto-phrase){.form-record .fr-observe-step p{word-break:auto-phrase}}
}
/* 写真集形成記録・終章：スマホ専用の確定組版 */
@media (max-width:560px){
  .yamanikiru-record-page .yk-record-ending-inner{
    width:100%;
    max-width:none;
  }
  .yamanikiru-record-page .yk-record-ending p:first-of-type{
    font-size:clamp(25px,7.4vw,29px);
    line-height:1.72;
    letter-spacing:.025em;
    white-space:nowrap;
    word-break:keep-all;
    text-wrap:nowrap;
  }
  .yamanikiru-record-page .yk-record-ending p+p{
    margin-top:72px;
    font-size:clamp(17px,5.1vw,20px);
    line-height:2.05;
    letter-spacing:.025em;
    white-space:normal;
    word-break:normal;
    overflow-wrap:normal;
    text-wrap:pretty;
  }
}

