@charset "shift_jis";

/*---------------------------------------------
　レイアウト
---------------------------------------------*/
.main .kiji {
  padding: 3em 20px 1em 20px;
}

.main .kiji h2 {
  font-weight: bold;
  line-height: 2em;
  margin-top: 2em;
}


/* 追記20260601 */
.contents {
  width: 1000px;
  margin: 0 auto;
}

.main {
  padding-top: 40px;
}

/* 便利ツール タイトルバー */
.title-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 4px;
}

.title-bar__icon {
  width: fit-content;
  flex-shrink: 0;
}

.title-bar__icon a,
.title-bar__icon img {
  display: block;
}

.title-bar__body {
  flex: 1;
}

.title-bar__rule {
  display: block;
  width: 100%;
  height: 2px;
}

.title-bar__category {
  color: #FF6600;
  font-size: 0.875em;
  margin: 5px 5px 0;
  padding: 4px 4px 0;
}

.title-bar__heading {
  font-weight: bold;
  color: #808080;
  padding: 4px;
}

.title-bar__meta {
  display: flex;
  align-items: center;
  margin-top: 4px;
}

.title-bar__back {
  text-align: center;
  width: 70px;
  background-color: #FF9933;
}

.title-bar__date {
  flex: 1;
  text-align: right;
  font-size: 0.9em;
}

/* 便利ツール タイトルバーおわり */


/* 記事 */
.book-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}

.book-header__badge {
  background: rgb(0, 32, 94);
  color: #fff;
  padding: 5px;
  border-radius: 5px;
  width: 200px;
  text-align: center;
  font-size: 1.1em;
}

.book-header__price {
  text-align: right;
  padding-top: 16px;
}

/* 本タイトル */
.book-title {
  text-align: center;
  margin: 8px auto;
  padding: 11px 0 7px;
  border-bottom: 2px solid rgb(0, 32, 94);
  background: #f5f5f5;
  font-size: 2em;
  font-weight: 700;
}

.book-body {
  display: flex;
  gap: 1.5em;
  margin-top: 10px;
}

.book-body__sidebar {
  width: 42%;
  flex-shrink: 0;
}

.book-body__sidebar img {
  display: block;
  margin: 10px auto 20px;
}

.book-body__main {
  width: calc(58% - 1.5em);
}

.book-info {
  display: flex;
  flex-wrap: wrap;
  padding: 0 1em;
  margin: 0;
  font-size: 0.9em;
}

.book-info dt {
  width: 4.5em;
}

.book-info dd {
  width: calc(100% - 5em);
}

.book-info dd::before {
  content: "：";
  display: inline-block;
}

.author-name {
  display: flex;
  gap: 1em;
  margin-bottom: 5px;
}

.author-heading {
  background: #e6f6ff;
  margin-top: 20px;
  margin-bottom: 5px;
  text-indent: 10px;
  font-weight: bold;
  padding: 3px;
}

.book-summary {
  border: 1px #b0d2ed solid;
  padding: 8px;
  margin-top: 10px;
  line-height: 150%;
}

.note {
  font-size: 1.2em;
  color: #009999;
  font-weight: 700;
  margin-bottom: 1em;
}

.button02 {
  display: flex;
  justify-content: right;
  align-items: center;
  gap: .5em;
  margin-top: 25px;
}

.button02 a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 0 0 5px;
  padding: 0.7em 2em;
  width: 160px;
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  background-color: #ff9933;
  border-radius: 50vh;
  text-decoration: none;
}

.button02 a::after {
  content: '';
  width: 5px;
  height: 5px;
  border-top: 3px solid #fff;
  border-right: 3px solid #fff;
  transform: rotate(45deg);
}

.button02 a:hover {
  text-decoration: none;
  background-color: #ffd200;
}

.small {
  display: block;
  color: #777777;
}

.toc-heading {
  background-color: #009999;
  color: #fff;
  line-height: 2em;
  font-size: 1.2em;
}

.toc__section {
  display: flex;
  flex-wrap: wrap;
  margin: 1.5em 0 1.5em 1em;
}

.toc__section dt,
.toc__section dd {
  font-weight: 700;
  color: #099;
}

.toc__section dt {
  width: 5em;
}

.toc__section dd {
  width: calc(100% - 5em);
}

.ref-links {
  margin-top: 8px;
}

.ref-links li {
  margin-bottom: 8px;
}


.to-top {
  text-align: right;
  display: block;
}



/*---------------------------------------------
　スマホ対応 （追記20260602）
---------------------------------------------*/
@media screen and (max-width: 768px) {

  /* コンテナ幅を固定値からフルwidthへ */
  .contents {
    width: 100%;
    box-sizing: border-box;
    padding: 0 .5em;
  }

  .main {
    padding-top: 20px;
  }

  .main .kiji {
    padding: 1.5em 12px 1em 12px;
  }

  /* 書籍ヘッダー：縦並びに */
  .book-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
  }

  .book-header__badge {
    width: auto;
    font-size: 0.9em;
  }

  .book-header__price {
    text-align: left;
    padding-top: 0;
    font-size: 0.9em;
  }

  /* 本タイトル：文字サイズを縮小 */
  .book-title {
    font-size: 1.3em;
    padding: 8px 8px 6px;
  }

  /* サイドバーとメインを縦並びに */
  .book-body {
    flex-direction: column;
    gap: 0;
  }

  .book-body__sidebar {
    width: 100%;
  }

  .book-body__main {
    width: 100%;
  }

  /* 書影を中央揃え・サイズ調整 */
  .book-body__sidebar img {
    max-width: 160px;
    width: 50%;
  }

  /* 著者情報のはみ出し防止 */
  .book-info dd {
    white-space: normal;
  }

  /* 注文ボタンを中央寄せ・タップしやすいサイズに */
  .button02 {
    flex-direction: column;
    align-items: center;
    margin-top: 20px;
  }

  .button02 a {
    width: 200px;
    font-size: 16px;
    justify-content: center;
    gap: 0.5em;
  }

  .small {
    text-align: center;
  }

  /* 目次 */
  .toc-heading {
    font-size: 1em;
  }

  .toc__section {
    margin: 1em 0 1em 0.5em;
  }

  .toc__section dt {
    width: 4.5em;
  }

  .toc__section dd {
    width: calc(100% - 4.5em);
  }
}