
:root{
  --hero-content:980px;
  --section-content:860px;
  --book-text:760px;
  --book-ink:#24211f;
  --book-muted:#746f69;
  --book-soft:#f4f1ed;
  --book-line:#ddd7d0;
  --book-paper:#fbfaf8;
}
.book-page{background:#fff;color:var(--book-ink)}
.book-wrap{
  width:min(var(--hero-content),calc(100% - 48px));
  margin-inline:auto;
}
.book-hero{margin-top:32px}
.book-hero__box{
  background:linear-gradient(90deg,#eee9e4 0%,#f4f1ed 14%,#f4f1ed 86%,#eee9e4 100%);
  padding:42px 56px;
  display:grid;
  grid-template-columns:220px minmax(0,1fr);
  gap:56px;
  align-items:center;
}
.book-cover{display:flex;justify-content:center}
.book-cover img{
  display:block;width:188px;height:auto;max-height:340px;object-fit:contain;
  box-shadow:0 20px 44px rgba(0,0,0,.13)
}
.book-kicker{
  font-family:Georgia,"Times New Roman",serif;
  font-size:10px;letter-spacing:.17em;color:#9a938c;margin-bottom:28px
}
.book-catch{
  margin:0 0 16px;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:16px;line-height:1.7;color:#5b5651
}
.book-title{
  margin:0;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:44px;line-height:1.34;font-weight:400;letter-spacing:.035em
}
.book-author{
  margin-top:18px;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:15px;color:#4d4945
}
.book-lead{
  margin:27px 0 0;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:17px;line-height:1.9;color:#4b4743
}

/* Pull lower blocks back to a cleaner, readable width */
.editions,
.book-section{
  width:min(var(--section-content),100%);
  margin-left:auto;
  margin-right:auto;
}

.editions{margin-top:30px}
.editions__eyebrow{
  display:flex;align-items:center;gap:14px;margin-bottom:7px;
  font-family:Georgia,"Times New Roman",serif;font-size:10px;
  letter-spacing:.17em;color:#8f8881
}
.editions__eyebrow:after{content:"";height:1px;background:var(--book-line);flex:1}
.edition{
  display:grid;grid-template-columns:145px minmax(0,1fr) auto;align-items:center;
  gap:18px;min-height:70px;padding:6px 0;border-bottom:1px solid var(--book-line)
}
.edition:first-of-type{border-top:1px solid var(--book-line)}
.edition__name{
  font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:15px;line-height:1.12
}
.edition__name small{
  display:block;margin-top:3px;
  font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  font-size:10px;line-height:1.05;color:#8a837d;font-weight:400
}
.edition__meta{
  display:flex;flex-direction:column;align-items:flex-start;justify-content:center;
  gap:0;color:#57514c;font-size:12.5px
}
.edition__meta-line{
  display:flex;align-items:center;flex-wrap:nowrap;min-height:16px;line-height:1.22
}
.edition__meta-line span{white-space:nowrap}
.edition__meta-line span+span:before{
  content:"/";color:#b5aea7;margin:0 12px
}
.edition__links{
  display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;
  gap:8px;min-width:248px
}
.edition__links a{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:72px;height:34px;padding:0 12px;
  border:1px solid rgba(23,72,111,.52);color:var(--navy);
  background:#fff;text-decoration:none;font-size:11px;line-height:1;letter-spacing:.01em
}
.edition__links a:hover{background:var(--navy);color:#fff;border-color:var(--navy)}

.book-section{margin-top:52px}
.book-heading{
  display:grid;
  grid-template-columns:26px auto minmax(40px,1fr);
  column-gap:13px;
  align-items:center;
  margin-bottom:23px
}
.book-heading__icon{
  width:24px;height:24px;position:relative;opacity:.78
}
.book-heading__text{
  display:flex;flex-direction:column;gap:6px
}
.book-heading__en{
  font-family:Georgia,"Times New Roman",serif;
  font-size:10px;line-height:1;letter-spacing:.17em;color:#8f8881
}
.book-heading h2{
  margin:0;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:30px;line-height:1.15;font-weight:400;letter-spacing:.04em
}
.book-heading__rule{
  height:1px;background:var(--book-line);align-self:center
}

.icon-book:before,.icon-book:after{
  content:"";position:absolute;top:3px;width:10px;height:17px;border:1.2px solid #4d4945
}
.icon-book:before{left:1px;border-radius:2px 0 0 2px;transform:skewY(-6deg)}
.icon-book:after{right:1px;border-radius:0 2px 2px 0;transform:skewY(6deg)}
.icon-author:before{
  content:"";position:absolute;left:8px;top:1px;width:8px;height:8px;
  border:1.2px solid #4d4945;border-radius:50%
}
.icon-author:after{
  content:"";position:absolute;left:3px;bottom:1px;width:18px;height:10px;
  border:1.2px solid #4d4945;border-bottom-color:transparent;border-radius:12px 12px 2px 2px
}
.icon-list:before{
  content:"";position:absolute;left:1px;top:4px;width:3px;height:3px;border:1px solid #4d4945;
  border-radius:50%;box-shadow:0 7px 0 -1px #4d4945,0 14px 0 -1px #4d4945
}
.icon-list:after{
  content:"";position:absolute;left:8px;top:5px;width:15px;height:1px;background:#4d4945;
  box-shadow:0 7px 0 #4d4945,0 14px 0 #4d4945
}
.icon-review:before{
  content:"";position:absolute;left:2px;top:3px;width:19px;height:15px;
  border:1.2px solid #4d4945;border-radius:2px
}
.icon-review:after{
  content:"";position:absolute;left:7px;bottom:1px;width:6px;height:6px;
  border-left:1.2px solid #4d4945;transform:skewX(-35deg)
}

/* Readable text width, centered */
.book-prose,
.toc-list,
.review-list,
.author-card{
  width:min(var(--book-text),100%);
  margin-inline:auto;
}

.book-prose{
  font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:16px;line-height:2;color:#403c38
}
.book-prose p{margin:0 0 1.15em}

.author-card{
  background:var(--book-paper);
  border:0;
  padding:30px 28px 24px;
}
.author-card h3{
  margin:0 0 14px;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:20px;font-weight:400
}
.author-reading{font-size:.72em;color:#6f6963;letter-spacing:.02em}

.toc-list,.review-list{
  padding:0;list-style:none;
  font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:15px;line-height:1.9;color:#403c38
}
.toc-list li{
  padding:8px 0;border-bottom:1px solid rgba(221,215,208,.65)
}
.review-list li{
  padding:8px 0;border-bottom:0
}

.book-bottom-space{height:72px}

/* tablet keeps the PC composition */
@media(min-width:601px) and (max-width:900px){
  .book-wrap{width:min(var(--hero-content),calc(100% - 36px))}
  .book-hero__box{
    grid-template-columns:192px minmax(0,1fr);
    gap:34px;padding:34px 36px
  }
  .book-cover img{width:168px}
  .book-title{font-size:38px}
  .book-catch{font-size:15px}
  .book-lead{font-size:16px}
  .editions,.book-section{
    width:min(var(--section-content),calc(100% - 28px));
  }
  .edition{grid-template-columns:138px minmax(0,1fr) auto}
}

/* phone */
@media(max-width:600px){
  :root{
    --hero-content:100%;
    --section-content:100%;
    --book-text:100%;
  }
  .book-wrap{width:calc(100% - 28px)}
  .book-hero{margin-top:18px}
  .book-hero__box{
    padding:30px 22px;
    grid-template-columns:1fr;
    gap:28px
  }
  .book-cover img{width:158px}
  .book-kicker{font-size:9px;margin-bottom:20px}
  .book-title{font-size:32px;line-height:1.32}
  .book-catch{font-size:14px}
  .book-author{font-size:14px}
  .book-lead{font-size:15px;line-height:1.85}
  .editions,.book-section{width:100%}

  .edition{
    grid-template-columns:1fr;
    gap:5px;
    padding:12px 0
  }
  .edition__meta-line{flex-wrap:wrap}
  .edition__links{
    grid-column:1;
    justify-content:flex-start;
    min-width:0
  }

  .book-heading{
    grid-template-columns:24px auto 1fr;
    column-gap:11px
  }
  .book-heading h2{font-size:26px}

  .book-prose{font-size:15px;line-height:1.95}
  .author-card{padding:21px 20px}
}


/* V13: headings — English above, icon/rule centered on Japanese title */
.book-heading{
  display:grid !important;
  grid-template-columns:26px auto minmax(40px,1fr) !important;
  grid-template-rows:auto auto !important;
  column-gap:13px !important;
  row-gap:6px !important;
  align-items:center !important;
  margin-bottom:23px !important;
}
.book-heading__icon{
  grid-column:1 !important;
  grid-row:2 !important;
  width:24px !important;
  height:24px !important;
  margin:0 !important;
  align-self:center !important;
}
.book-heading__en{
  grid-column:2 !important;
  grid-row:1 !important;
  align-self:end !important;
}
.book-heading h2{
  grid-column:2 !important;
  grid-row:2 !important;
  margin:0 !important;
  align-self:center !important;
}
.book-heading__rule{
  grid-column:3 !important;
  grid-row:2 !important;
  width:100% !important;
  height:1px !important;
  margin:0 !important;
  align-self:center !important;
  background:var(--book-line) !important;
}
@media(max-width:600px){
  .book-heading{
    grid-template-columns:24px auto minmax(30px,1fr) !important;
    column-gap:11px !important;
    row-gap:5px !important;
  }
  .book-heading__icon{
    width:22px !important;
    height:22px !important;
  }
}


/* V14: hero width / centered content / generated subtitle+lead */
:root{
  --hero-shell:1120px;
  --hero-inner-left:300px;
  --hero-inner-right:720px;
}

.book-wrap{
  width:min(var(--hero-shell), calc(100% - 48px)) !important;
}

.book-hero__box{
  display:grid !important;
  grid-template-columns:var(--hero-inner-left) minmax(0, var(--hero-inner-right)) !important;
  justify-content:center !important;
  gap:72px !important;
  padding:54px 64px !important;
  background:linear-gradient(90deg,#efebe6 0%, #f5f1ed 14%, #f5f1ed 86%, #efebe6 100%) !important;
}

.book-cover{
  justify-content:center !important;
}
.book-cover img{
  width:245px !important;
  max-height:none !important;
}

.book-hero__text{
  align-self:center !important;
}

.book-kicker{
  margin-bottom:22px !important;
}

.book-catch{
  margin:0 0 22px !important;
  font-family:"Yu Mincho","Hiragino Mincho ProN",serif !important;
  font-size:18px !important;
  line-height:1.65 !important;
  color:#615a55 !important;
}

.book-author{
  margin-top:20px !important;
}
.book-lead{
  margin:30px 0 0 !important;
  max-width:none !important;
}

.editions,
.book-section{
  width:min(var(--section-content), 100%) !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

@media (min-width:601px) and (max-width:900px){
  :root{
    --hero-shell:100%;
    --hero-inner-left:220px;
    --hero-inner-right:1fr;
  }
  .book-wrap{
    width:calc(100% - 36px) !important;
  }
  .book-hero__box{
    grid-template-columns:220px minmax(0,1fr) !important;
    gap:40px !important;
    padding:40px 42px !important;
  }
  .book-cover img{
    width:190px !important;
  }
  .book-catch{
    font-size:16px !important;
  }
}

@media (max-width:600px){
  .book-wrap{
    width:calc(100% - 28px) !important;
  }
  .book-hero__box{
    grid-template-columns:1fr !important;
    gap:28px !important;
    padding:30px 22px !important;
  }
  .book-cover img{
    width:158px !important;
  }
  .book-catch{
    font-size:15px !important;
    margin-bottom:16px !important;
  }
  .book-lead{
    max-width:none !important;
    margin-top:22px !important;
  }
}


/* V15 book_31 catch role confirmation */
.book-catch{
  margin:0 0 22px !important;
  font-family:"Yu Mincho","Hiragino Mincho ProN",serif !important;
  font-size:18px !important;
  line-height:1.65 !important;
  color:#615a55 !important;
}
.book-author{
  margin-top:20px !important;
}
.book-lead{
  margin:30px 0 0 !important;
  max-width:none !important;
  font-family:"Yu Mincho","Hiragino Mincho ProN",serif !important;
  font-size:17px !important;
  line-height:1.9 !important;
  color:#4b4743 !important;
}
@media(max-width:600px){
  .book-catch{
    font-size:15px !important;
    margin-bottom:16px !important;
  }
  .book-lead{
    max-width:none !important;
    margin-top:22px !important;
    font-size:15px !important;
    line-height:1.85 !important;
  }
}


/* V17: 著者紹介の下地を削除 */
.author-card{
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
}


/* =========================================================
   HERO alignment fix v3
   ・書影左端 = FORMAT / EDITION 左端
   ・2行キャッチの横幅を縮めない
   ========================================================= */
@media (min-width:901px){
  .book-hero__box{
    grid-template-columns:245px minmax(0, 1fr) !important;
    justify-content:stretch !important;
    gap:48px !important;
    padding-left:130px !important;
    padding-right:30px !important;
  }

  .book-cover{
    justify-content:flex-start !important;
  }

  .book-cover img{
    width:245px !important;
  }

  .book-hero__text{
    align-self:center !important;
    min-width:0 !important;
  }

  .book-lead{
    width:100% !important;
    max-width:none !important;
    white-space:normal !important;
  }
}


/* =========================================================
   HERO text position fine-tune v4
   右側テキスト一式を気持ち右へ
   ========================================================= */
@media (min-width:901px){
  .book-hero__text{
    padding-left:20px !important;
    box-sizing:border-box !important;
  }
}


/* =========================================================
   FORMAT / EDITION fine-tune v5b
   天地幅は維持。少しだけ大きく、少しだけゆったり。
   ========================================================= */
@media (min-width:901px){
  .edition{
    align-items:center !important;
  }

  .edition__meta{
    font-size:15px !important;
    line-height:1.35 !important;
  }

  .edition__meta-line{
    line-height:1.35 !important;
  }

  .edition__links a{
    font-size:14px !important;
    min-width:96px !important;
    min-height:44px !important;
    padding:10px 18px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    box-sizing:border-box !important;
  }
}


/* =========================================================
   FORMAT / EDITION fine-tune v5c
   書誌情報は少し小さく、ボタンもごくわずかに縮小
   ========================================================= */
@media (min-width:901px){
  .edition__meta{
    font-size:14px !important;
    line-height:1.32 !important;
  }

  .edition__meta-line{
    line-height:1.32 !important;
  }

  .edition__links a{
    font-size:13.5px !important;
    min-width:92px !important;
    min-height:42px !important;
    padding:9px 16px !important;
  }
}

/* =========================================================
   SHARED MOBILE DETAIL ALIGNMENT v18
   FORMAT / EDITION と下層セクションの左右ラインを統一
   ========================================================= */
main.book-page{
  font-family:inherit !important;
  font-size:16px !important;
  line-height:normal !important;
  letter-spacing:normal !important;
  font-weight:400 !important;
}

/* （オンデマンド）など補助表記は本文より一回り小さく */
.edition__name small{
  font-size:12px !important;
  line-height:1.15 !important;
}

@media(max-width:600px){
  /* .editions は .book-wrap 内にあるため、ここでさらに14pxずつ内側へ */
  main.book-page .editions{
    width:calc(100% - 28px) !important;
    margin-left:auto !important;
    margin-right:auto !important;
    box-sizing:border-box !important;
  }

  /* .book-section は .book-wrap 外なので、FORMATと同じ実表示幅まで28pxずつ内側へ */
  main.book-page .book-section{
    width:calc(100% - 56px) !important;
    margin-left:auto !important;
    margin-right:auto !important;
    box-sizing:border-box !important;
  }

  main.book-page .book-prose,
  main.book-page .author-card,
  main.book-page .toc-list,
  main.book-page .review-list{
    width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
    box-sizing:border-box !important;
  }

  main.book-page .book-heading h2{
    font-size:24px !important;
  }

  main.book-page .book-prose{
    font-size:15px !important;
    line-height:1.95 !important;
  }

  main.book-page .author-card h3{
    font-size:18px !important;
    margin-bottom:12px !important;
  }
}

/* =========================================================
   SHARED DESKTOP + MOBILE VERTICAL RHYTHM v20
   FORMAT / EDITION → ABOUT THE BOOK を詰め、
   最終セクション → フッター前に呼吸をつくる
   ========================================================= */

/* PC / tablet */
@media(min-width:601px){
  .book-bottom-space{
    height:28px !important;
  }

  .book-page{
    padding-bottom:64px !important;
  }
}

/* SP */
@media(max-width:600px){
  .book-bottom-space{
    height:24px !important;
  }

  .book-page{
    padding-bottom:56px !important;
  }
}

