@charset "UTF-8";

/* Base reset */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code, del, dfn, em, img,
ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var,
b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label,
legend, table, caption, tbody, tfoot, thead, tr, th, td, article,
aside, canvas, details, figcaption, figure, footer, header, hgroup,
menu, nav, section, summary, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}
article, aside, details, figcaption, figure, footer, header, hgroup,
main, menu, nav, section { display: block; }
body { line-height: 1; }
ol, ul { list-style: none; }
blockquote, q { quotes: none; }
blockquote::before, blockquote::after, q::before, q::after { content: ""; }
ins { text-decoration: none; }
del { text-decoration: line-through; }
table { border-collapse: collapse; border-spacing: 0; }

/* Global typography and links */
body {
  border-top: 10px solid #1960ab;
  color: #373737;
  background: #fff;
  font-family: Arial, "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  font-size: 14px;
  line-height: 1.6;
}
a, a:link, a:visited { color: #373737; text-decoration: none; }
a:hover { color: #000; text-decoration: underline; }
a:active { color: #373737; text-decoration: underline; }
h1, h2, h3, h4, h5, form, p, ul { margin: 0; padding: 0; font-size: 100%; }
img { border: 0; }
input { margin: 0; vertical-align: middle; }
.clearfix::after { display: block; clear: both; height: 0; content: "."; visibility: hidden; }
.clearfix { overflow: hidden; }
br { letter-spacing: 0; }

/* Shared header and navigation */
#header { margin: 0 0 30px; border-bottom: 1px solid #c4c3c3; }
#header-inner { width: 1000px; height: 85px; margin: 0 auto; padding-top: 30px; }
#header-inner .site-logo { margin: 0; padding: 0; }
#header-inner .site-logo > a {
  display: block;
  float: left;
  width: 174px;
  height: 51px;
  margin-right: 45px;
  background: url("../images/ui/logo.gif") no-repeat;
  text-indent: -9999px;
}
#nav ul { padding-top: 15px; }
#nav ul li { float: left; height: 30px; padding: 6px 37px 0 0; font-size: 123.1%; }
.wrapper { width: 1000px; margin: 0 auto; line-height: 1.6; }

/* Home, listings, and footer */
#topimage { margin: 0 0 30px; }
.news dl dt {
  float: left;
  clear: both;
  width: 145px;
  height: 30px;
  padding-top: 3px;
  color: #fff;
  background: #1960ab;
  line-height: 30px;
  text-align: center;
}
.news dl dd { padding: 5px 0 0 175px; vertical-align: middle; }
.news dl dd > span { display: inline-block; padding-right: 10px; font-size: 92%; vertical-align: top; }
.sidemenu { float: left; width: 145px; }
.sidemenu ul { border: 1px solid #c4c3c3; }
.sidemenu ul li { padding-left: 10px; font-size: 123.1%; line-height: 39px; }
.ttl_sidemenu { display: block; height: 40px; color: #fff; background: #1960ab; font-size: 93%; line-height: 40px; text-align: center; }
.sidemenu .menu-sidebarcat-container { margin-bottom: 10px; }
.main { float: right; overflow: hidden; width: 765px; }
.bookbox { width: 792px; margin-right: -27px; }
.postitem { float: left; width: 172px; margin: 0 26px 68px 0; }
.postitem > dl, .postitem > dl dt, .postitem > dl dd,
.postitem2 > dl, .postitem2 > dl dt, .postitem2 > dl dd { width: 172px; }
.postitem > dl dd a, .postitem2 > dl dd a {
  display: inline-block;
  width: 155px;
  min-height: 71px;
  padding-top: 5px;
  color: #0032cd;
  line-height: 17px;
}
.morebook { float: right; }
.morebook a {
  display: block;
  width: 170px;
  height: 52px;
  margin-bottom: 30px;
  background: url("../images/ui/btn_itemlink_more.gif") no-repeat;
  text-indent: -9999px;
}
.sbbox { height: 25px; margin-bottom: 15px; }
#footer_box1, #footer_box2, #footer_box3 { padding: 29px 0; border-top: 1px solid #c4c3c3; }
#footer_box2 ul li { float: left; padding: 0 15px; border-left: 1px solid #373737; }
#footer_box2 ul li:first-child { padding-left: 0; border: 0; }
#footer_box2 .gotop {
  float: right;
  padding-left: 15px;
  background: url("../images/ui/icon_arrow.gif") no-repeat 0 50%;
}
#footer_box3 { font-size: 93%; line-height: 18px; }

/* Product detail and article foundations formerly supplied by Welcart CSS */
#itempage { width: 100%; }
#itempage::after { display: block; clear: both; height: 0; content: "."; visibility: hidden; }
#itempage .itemimg { float: left; width: 300px; margin: 0 10px 30px 0; text-align: left; }
#itempage .itemimg img { margin: 0; padding: 0; }
#itempage .itemsubimg { display: none; margin-bottom: 10px; }
#itempage .exp { min-height: auto; margin-bottom: 10px; font-size: 100%; line-height: 1.4; }
#itempage .field { width: auto; height: auto; margin: 0; border-bottom: 1px solid #ccc; }
#itempage .field .field_name { text-align: left; }
#itempage .field .field_price { width: auto; margin: 0; padding: 0 0 5px; color: #f30; font-size: 140%; font-weight: bold; text-align: left; }
#itempage .field .field_cprice { width: auto; margin: 0; padding: 0 0 5px; color: #333; font-size: 100%; text-align: left; }
#itempage .skuform { width: 100%; text-align: left; }
#itempage .exp .list_itemdetail { padding-bottom: 20px; }
#itempage h2, #itempage h3, #itempage strong, #itempage em,
.catbox h2, .catbox h3, .catbox strong, .catbox em { font-weight: bold; }
.main_l2 { width: 100%; margin-top: 30px; }
.list_itemdetail2 li { display: inline-block; margin-left: 15px; }
.list_itemdetail2 li:first-child { margin-left: 0; }
.action-button,
.action-button:link,
.action-button:visited {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 170px;
  min-height: 52px;
  padding: 10px 18px;
  border: 1px solid #115eae;
  border-radius: 3px;
  color: #115eae;
  background: #f7f8f9;
  font: bold 14px/1.5 Arial, "メイリオ", Meiryo, sans-serif;
  text-align: center;
  text-decoration: none;
  text-indent: 0;
}
.action-button.action-button--back {
  border-color: #115eae;
  color: #115eae;
  background: #f7f8f9;
}
.action-button.action-button--amazon {
  border-color: #115eae;
  color: #115eae;
  background: #fff;
}
.action-button:hover {
  border-color: #115eae;
  color: #115eae;
  background: #eef4fa;
}
.action-button:focus-visible {
  outline: 3px solid #c66b00;
  outline-offset: 2px;
}
.backlink { margin-top: 20px; }
body.archive .wrapper .main { margin-bottom: 30px; }
body.page #content.two-column, body.single #content.two-column, body.search #content.two-column {
  width: 1000px;
  margin: 0 auto 30px;
}
#content.two-column .pagetitle {
  margin: 0;
  padding: 34px 30px 26px;
  color: #222;
  background: transparent;
  font-size: 26px;
  font-weight: 600;
  line-height: 1.55;
}
body.single #content.two-column .storycontent { padding: 30px 0 0; font-size: 100%; line-height: 1.6; }
.catbox .post .entry { padding: 10px 0 15px; border: 0; }
.site-article #content.two-column { float: none; width: 860px; margin: 0 auto 56px; color: #2f2f2f; }
.site-article #content.two-column .catbox,
.site-article #content.two-column .post { width: auto; margin: 0; padding: 0; background: transparent; }
.site-article #content.two-column .public-entry { padding: 0 30px 48px; color: #333; background: #fff; }
@media screen and (max-width: 767px) {
  .site-article #content.two-column { width: auto; margin: 0 16px 36px; }
  .site-article #content.two-column .pagetitle { padding: 10px 0 24px; font-size: 24px; line-height: 1.5; }
  .site-article #content.two-column .public-entry { padding: 0 0 36px; }
}


/* Site components and responsive enhancements */
/* prototype-v2: 現行CSSを保ち、指定ナビ変更と動的機能除去だけを反映 */
#nav ul.nav-static { padding-top: 15px; }
#nav ul.nav-static li { float: left; height: 30px; padding: 6px 37px 0 0; font-size: 123.1%; }
#nav ul.nav-static li.nav-home {
  background: url(../images/ui/icon_home.gif) no-repeat;
  padding-left: 35px;
}
#nav ul.nav-static li.nav-books {
  background: url(../images/ui/icon_books.gif) no-repeat;
  padding-left: 50px;
}
#nav ul.nav-static li.nav-order {
  background: url(../images/ui/icon_order.svg) no-repeat;
  padding-left: 45px;
}
#nav ul.nav-static li a,
#nav ul.nav-static li a:link,
#nav ul.nav-static li a:visited { color: #373737; text-decoration: none; }
#nav ul.nav-static li a:hover { color: #000000; text-decoration: underline; }
#nav ul.nav-static li a:active { color: #373737; text-decoration: underline; }

/* 現行トップの新着リンクに付いているインライン指定を静的版でも維持 */
.news dl dd > a { padding-right: 10px; vertical-align: text-bottom; }
.news dl dt > a,
.news dl dt > a:link,
.news dl dt > a:visited,
.news dl dt > a:hover,
.news dl dt > a:active { color: #fff; }

/* トップの新着情報と次のコンテンツを、少し見分けやすくする。 */
.top-news-wrapper { margin-bottom: 42px; }

/* トップの商品掲載ブロック末尾：「もっとみる」を左寄せし、直上だけを少し詰める。 */
body.home .main > .home-books-last .postitem { margin-bottom: 46px; }
body.home .morebook { float: none; text-align: center; }
body.home .morebook a { margin-right: auto; margin-left: auto; }

/* カートフォームを除去しても現行の商品配置・余白は維持する */
#itempage .skuform { margin-top: 0; }

/* 商品詳細: 長い商品名が折り返したときの行間を確保する。 */
#itempage .item_name { line-height: 1.4; }

/* 商品2759: 公開元ページに埋め込まれていた表CSSを、この表だけに復元する。 */
.postid-2759 #itempage table.strawr-supplies-table {
  width: 600px;
  margin: 15px 0 50px;
  border-collapse: collapse;
}
.postid-2759 #itempage table.strawr-supplies-table th,
.postid-2759 #itempage table.strawr-supplies-table td {
  border: 1px solid #696969;
  padding: 5px;
}
.postid-2759 #itempage table.strawr-supplies-table th {
  background: #f8f8f8;
  font-weight: bold;
}

/* 全商品詳細: 承認済みの本文・目次文字組み。見出しと表は対象外。 */
body.single.single-post #itempage .main_l2 > p {
  font-size: 1.1em;
  line-height: 1.976;
}

/* 全商品詳細: 承認済みの書誌情報・注記文字組み。 */
body.single.single-post #itempage .list_itemdetail {
  font-size: 1.1em;
  line-height: 1.729;
}
body.single.single-post #itempage .list_itemdetail span[style*="font-size: large"] {
  font-size: 19.8px !important;
}

/* 全商品詳細: 赤い税込価格を除く価格・在庫文字を本文と調和させる。 */
body.single.single-post #itempage .field .field_name,
body.single.single-post #itempage .field .field_cprice,
body.single.single-post #itempage .exp > .field + .field,
body.single.single-post #itempage .skuform .zaiko_status {
  font-size: 15.4px;
  line-height: 1.729;
}

/* 商品詳細の説明書・正誤表などを、本文から判別しやすい関連資料枠にまとめる。 */
body.single.single-post #itempage .related-materials {
  clear: both;
  margin: 22px 0 28px;
  border: 1px solid #222;
  background: #f7fafc;
}
body.single.single-post #itempage .related-materials > .product-section-title {
  padding-left: 14px;
}
body.single.single-post #itempage .related-materials__title {
  margin: 0;
  padding: 9px 14px 9px 16px;
  border-left: 10px solid #115eae;
  background: #f5f5f5;
  color: #333;
  font-size: 15.4px;
  font-weight: bold;
  line-height: 1.5;
}
body.single.single-post #itempage .related-materials__list {
  margin: 0;
  padding: 0;
  list-style: none;
}
body.single.single-post #itempage .related-materials__item + .related-materials__item {
  border-top: 1px solid #d9e1e8;
}
body.single.single-post #itempage .related-materials__link {
  display: flex;
  box-sizing: border-box;
  width: 100%;
  min-height: 48px;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 11px 14px;
  color: #124f91;
  font-size: 15.4px;
  line-height: 1.55;
  text-decoration: underline;
}
body.single.single-post #itempage .related-materials__link:hover,
body.single.single-post #itempage .related-materials__link:focus {
  background: #fff;
  color: #003b78;
}
body.single.single-post #itempage .related-materials__type {
  flex: 0 0 auto;
  padding: 2px 7px;
  border: 1px solid #aebbc7;
  border-radius: 2px;
  background: #fff;
  color: #4b5966;
  font-size: 12px;
  font-weight: bold;
  line-height: 1.4;
  text-decoration: none;
}

/* 商品詳細内の関連商品・用紙一覧を、固定幅や空行に頼らず読みやすく表示する。 */
body.single.single-post #itempage .product-series {
  clear: both;
  margin: 28px 0 32px;
}
body.single.single-post #itempage .product-series__title {
  margin: 0 0 14px;
  padding: 8px 12px 8px 16px;
  border-left: 10px solid #115eae;
  background: #eef4f9;
  color: #333;
  font-size: 15.4px;
  font-weight: bold;
  line-height: 1.55;
}
body.single.single-post #itempage .product-series__figure {
  margin: 0 0 18px;
}
body.single.single-post #itempage .product-series__figure img {
  display: block;
  max-width: 100%;
  height: auto;
}
body.single.single-post #itempage .product-series__table-wrap {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
body.single.single-post #itempage table.product-series__table {
  width: 100%;
  max-width: 600px;
  margin: 0;
  border-collapse: collapse;
  background: #fff;
  font-size: 15.4px;
  line-height: 1.55;
}
body.single.single-post #itempage table.product-series__table th,
body.single.single-post #itempage table.product-series__table td {
  padding: 9px 10px;
  border: 1px solid #222;
  text-align: left;
  vertical-align: middle;
}
body.single.single-post #itempage table.product-series__table th {
  background: #f5f5f5;
  color: #333;
  font-weight: bold;
}
body.single.single-post #itempage table.product-series__table tbody tr:nth-child(even) td {
  background: #f5f5f5;
}
body.single.single-post #itempage table.product-series__table a {
  color: #124f91;
  text-decoration: underline;
}
body.single.single-post #itempage table.product-series__table a:hover,
body.single.single-post #itempage table.product-series__table a:focus {
  color: #003b78;
}
body.single.single-post #itempage table.product-series__table--strawr th:nth-child(1),
body.single.single-post #itempage table.product-series__table--strawr td:nth-child(1) { width: 24%; }
body.single.single-post #itempage table.product-series__table--strawr th:nth-child(2),
body.single.single-post #itempage table.product-series__table--strawr td:nth-child(2) { width: 29%; }
body.single.single-post #itempage table.product-series__table--strawr th:nth-child(3),
body.single.single-post #itempage table.product-series__table--strawr td:nth-child(3) { width: 21%; }
body.single.single-post #itempage table.product-series__table--strawr th:nth-child(4),
body.single.single-post #itempage table.product-series__table--strawr td:nth-child(4) {
  width: 26%;
  text-align: right;
  white-space: nowrap;
}
body.single.single-post #itempage table.product-series__table--bite-block td {
  padding-top: 11px;
  padding-bottom: 11px;
}

/* 単一列のシリーズ一覧も、関連資料と同じ視線の流れで読めるようにする。 */
body.single.single-post #itempage table.product-series__table--single-column td {
  padding-top: 11px;
  padding-bottom: 11px;
}
body.single.single-post #itempage table.product-series__table--single-column a {
  display: block;
}


body.single.single-post #itempage table.product-series__table--consumables th:first-child,
body.single.single-post #itempage table.product-series__table--consumables td:first-child {
  width: 28%;
}

/* 商品情報と分けて示す、ご使用上の注意。 */
body.single.single-post #itempage .product-usage-notice__list {
  margin: 0;
  padding: 0 0 0 1.5em;
  color: #333;
  font-size: 15.4px;
  line-height: 1.7;
}
body.single.single-post #itempage .product-usage-notice__list li + li {
  margin-top: 7px;
}
body.single.single-post #itempage .product-usage-notice__list li::marker {
  color: #c62828;
}
body.single.single-post #itempage .product-usage-notice__list a {
  color: #124f91;
  text-decoration: underline;
}

/* 商品説明内の参考画像を、直前の文章から少し離す。 */
body.single.single-post #itempage .product-content-images {
  margin-top: 24px;
}

/* 嚥下模型の利用シーンは、PCでは2列、スマホでは1列で表示する。 */
body.single.single-post #itempage .mokei-content {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  margin: 24px 0 30px;
}
body.single.single-post #itempage .mokei-content__item {
  margin: 0;
  text-align: center;
}
body.single.single-post #itempage .mokei-content__item img {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 0 auto;
}
body.single.single-post #itempage .mokei-content__item figcaption {
  margin-top: 8px;
  font-size: 15.4px;
  line-height: 1.55;
}

/* 写真付きの使用法は固定幅テーブルにせず、内容を保ったままレスポンシブに並べる。 */
body.single.single-post #itempage .product-guide {
  clear: both;
  margin: 28px 0 32px;
}
body.single.single-post #itempage table.product-guide__grid,
body.single.single-post #itempage table.product-guide__grid tbody {
  display: block;
  width: 100%;
}
body.single.single-post #itempage table.product-guide__grid tr {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 16px;
}
body.single.single-post #itempage table.product-guide__grid td {
  display: block;
  box-sizing: border-box;
  width: auto;
  padding: 12px;
  border: 1px solid #222;
  background: #f5f5f5;
  font-size: 15.4px;
  line-height: 1.7;
  vertical-align: top;
}
body.single.single-post #itempage table.product-guide__grid img {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 0 auto 10px;
}

/* 現行ヘッダーの検索欄を、公開商品だけの静的検索へ置き換える。 */
.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
div#header-inner div.search form.search-static input[type="text"] {
  height: 25px;
  box-sizing: border-box;
}
@media screen and (min-width: 768px) {
  div#header-inner div.search form.search-static input[type="text"] {
    width: 156px !important;
  }
}
form.search-static input.form-srch {
  width: 35px;
  height: 25px;
  vertical-align: top;
}
form.search-static button.form-srch {
  width: 35px;
  height: 25px;
  padding: 0;
  border: 0;
  background: url(../images/ui/btn_search.gif) no-repeat;
  vertical-align: top;
  cursor: pointer;
}

.listing-title {
  background-color: #115EAE;
  color: #FFF;
  font-size: 130%;
  margin-bottom: 30px;
  padding: 10px;
}
.catalog-entry p { margin-bottom: 12px; }
.catalog-entry img { max-width: 100%; height: auto; }
.search-page .entry { padding: 20px 10px 10px; line-height: 160%; }
#search-status { margin-bottom: 18px; }
.search-result-list { border-top: solid 1px #CCC; }
.search-result-list li { padding: 12px 5px; border-bottom: solid 1px #CCC; }
.search-result-list a { color: #0032cd; }
.search-result-meta { display: block; margin-top: 4px; font-size: 93%; }
.public-entry {
  padding: 20px 10px 10px;
  line-height: 190%;
}
.public-entry p { margin-bottom: 12px; }
.public-entry ul,
.public-entry ol { margin: 0 0 16px 2em; }
.public-entry ul { list-style: disc; }
.public-entry ol { list-style: decimal; }
.public-entry img { max-width: 100%; height: auto; }
.public-entry table { max-width: 100%; }
.public-entry h2,
.public-entry h3 {
  margin: 22px 0 10px;
  font-size: 116%;
  font-weight: bold;
}

/* お知らせ・固定ページ: 本文と本文リストを商品本文と同じ文字組みにする。 */
body.single.shopblog .public-entry > p:not(.news-date):not(.backlink),
body.single.shopblog .public-entry > ul,
body.single.shopblog .public-entry > ol,
body.page .public-entry > p:not(.backlink),
body.page .public-entry > ul,
body.page .public-entry > ol {
  font-size: 15.4px;
  line-height: 1.976;
}
.news-date { color: #666; font-size: 93%; }
.structured-article {
  padding: 20px 18px 10px;
}
.structured-article .article-section {
  margin: 0 0 28px;
  padding: 0 0 22px;
  border-bottom: 1px solid #d9dfe5;
}
.structured-article .article-section:last-of-type {
  margin-bottom: 20px;
  border-bottom: 0;
}
.structured-article .article-section h2 {
  margin: 0 0 16px;
  padding: 0 0 6px;
  border: 0;
  border-bottom: 1px solid #222;
  color: #222;
  background: transparent;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.65;
}
.structured-article .article-section p,
.structured-article .article-section li,
.structured-article .event-closed p {
  font-size: 15.4px;
  line-height: 1.976;
}
.structured-article .article-note {
  margin: 14px 0 0;
  padding: 10px 14px;
  border-left: 3px solid #99a6b3;
  background: #f7f8f9;
}
.structured-article.compact-article > p:not(.backlink),
.structured-article.errata-article > p:not(.backlink),
.structured-article.link-list-article > p:not(.backlink),
.structured-article.notice-article > p:not(.backlink) {
  margin-bottom: 14px;
}
.structured-article .article-link-list,
.structured-article.link-list-article > p:not(.backlink) {
  margin-bottom: 10px;
}
.structured-article .article-link-list {
  margin-left: 0;
  list-style: none;
}
.structured-article .article-link-list li,
.structured-article.link-list-article > p:not(.backlink) {
  padding: 8px 10px 8px 28px;
  border-bottom: 1px dotted #c8d0d8;
  text-indent: -18px;
}
.structured-article .article-link-list li::before,
.structured-article.link-list-article > p:not(.backlink)::before {
  margin-right: 7px;
  color: #115eae;
  content: "›";
  font-weight: bold;
}
.structured-article.errata-article > p:not(.backlink):not(:first-child) {
  padding: 12px 14px;
  border-left: 3px solid #d4dce4;
  background: #fafbfc;
}
.structured-article .policy-list {
  margin-left: 1.6em;
}
.structured-article .policy-list li,
.structured-article .warning-list li {
  margin-bottom: 10px;
}
.structured-article .publication-list {
  columns: 2;
  column-gap: 34px;
}
.structured-article .publication-list li {
  break-inside: avoid;
  margin-bottom: 5px;
}
.structured-article .security-warning {
  margin: 16px 0;
  padding: 14px 16px;
  border: 1px solid #dc8a6a;
  border-left-width: 5px;
  background: #fff7f3;
}
.structured-article .security-warning p:last-child { margin-bottom: 0; }
.structured-article .warning-list {
  margin-left: 0;
  padding: 14px 18px 14px 38px;
  border: 1px solid #e5c7bc;
  background: #fff9f6;
}
.structured-article .legal-list {
  margin: 20px 0;
  border-top: 1px solid #222;
}
.structured-article .legal-list dt {
  margin: 0;
  padding: 12px 14px 5px;
  color: #115eae;
  background: #f5f5f5;
  font-size: 15.4px;
  font-weight: bold;
  line-height: 1.7;
}
.structured-article .legal-list dd {
  margin: 0;
  padding: 6px 14px 14px;
  border-bottom: 1px solid #222;
  background: #f5f5f5;
  font-size: 15.4px;
  line-height: 1.976;
}
.structured-article .legal-list dd ul {
  margin-top: 10px;
  margin-bottom: 0;
}
.structured-article.company-article table {
  width: 100%;
  border-collapse: collapse;
}
.structured-article.company-article th,
.structured-article.company-article td {
  box-sizing: border-box;
  padding: 12px 14px;
  border: 1px solid #222;
  vertical-align: top;
  font-size: 15.4px;
  line-height: 1.8;
}
.structured-article.company-article th {
  width: 22%;
  color: #222;
  background: #f5f5f5;
  text-align: left;
}
.structured-article.company-article td a {
  color: #222;
  text-decoration: underline;
}
.structured-article .article-salutation { margin-bottom: 12px; }
.structured-article .notice-title {
  margin: 0 0 22px;
  padding: 14px 16px;
  border: 1px solid #222;
  background: #f5f5f5;
  color: #115eae;
  text-align: center;
  font-size: 18px;
  line-height: 1.7;
}
.structured-article .article-signature {
  margin: 24px 0 0 auto;
  max-width: 420px;
  text-align: right;
}
.structured-article .article-signature p { margin-bottom: 5px; }
.guide-condition {
  margin: 0 0 18px;
  padding: 0 2px 16px;
  border-bottom: 1px dotted #b8c0c8;
}
.guide-condition:last-child { margin-bottom: 0; border-bottom: 0; }
.guide-condition h3 {
  margin: 0 0 8px;
  color: #373737;
  font-size: 16.5px;
  font-weight: bold;
  line-height: 1.6;
}
.guide-condition h3::before {
  margin-right: 7px;
  color: #115eae;
  content: "■";
}
.event-closed {
  margin: 0 0 24px;
  padding: 14px 16px;
  border: 2px solid #a92929;
  color: #7a1111;
  background: #fff4f4;
}
.event-closed p { margin: 0 0 4px; }
.event-closed p:last-child { margin-bottom: 0; }
.event-closed strong { font-size: 18px; }
.event-details {
  display: grid;
  grid-template-columns: 8em 1fr;
  margin: 0;
  border-top: 1px solid #ccd5dd;
}
.event-details dt,
.event-details dd {
  margin: 0;
  padding: 9px 10px;
  border-bottom: 1px solid #ccd5dd;
  font-size: 15.4px;
  line-height: 1.8;
}
.event-details dt { color: #34495e; background: #f5f7f9; font-weight: bold; }
.event-archive {
  padding: 12px 14px;
  border: 1px solid #ccd5dd;
  background: #f7f8f9;
}
.event-archive p:last-child { margin-bottom: 0; }
.event-archive a { overflow-wrap: anywhere; }
.draft-notice {
  border: solid 1px #d6b35b;
  background: #fffbea;
  padding: 10px;
}
.external-map-link a { text-decoration: underline; }

/* PCは現行と同じ固定幅を維持する。 */
html, body { min-width: 1000px; }

/* スマホ表示だけを整える。PC側の元CSS・配色・字体は変更しない。 */
@media screen and (max-width: 767px) {
  html,
  body {
    min-width: 0;
    width: 100%;
    overflow-x: hidden;
  }

  body { border-top-width: 6px; }

  .structured-article { padding: 16px 12px 8px; }
  .structured-article .article-section { margin-bottom: 22px; padding-bottom: 18px; }
  .structured-article .article-section h2 { font-size: 17px; }
  .event-details { grid-template-columns: 1fr; }
  .event-details dt { padding-bottom: 3px; border-bottom: 0; }
  .event-details dd { padding-top: 3px; }

  div#header { margin-bottom: 20px; }
  div#header-inner {
    width: auto;
    height: auto;
    padding: 18px 16px 12px;
  }
  div#header-inner .site-logo > a {
    float: none;
    margin: 0 auto 12px;
  }
  #nav ul.nav-static {
    display: flex;
    justify-content: center;
    gap: 8px;
    padding-top: 0;
  }
  #nav ul.nav-static li {
    float: none;
    flex: 0 0 auto;
    padding-top: 6px;
    padding-right: 0;
  }
  div#header-inner div.search {
    clear: both;
    padding-top: 10px;
    text-align: center;
  }

  .wrapper {
    width: auto;
    margin-right: 16px;
    margin-left: 16px;
  }

  .top-news-wrapper { margin-bottom: 36px; }

  body.home .main > .home-books-last { margin-bottom: 18px; }

  #topimage { margin-bottom: 20px; }
  #topimage img {
    display: block;
    width: 100%;
    height: auto;
  }

  .news dl dt {
    float: none;
    width: 100%;
    box-sizing: border-box;
    margin-bottom: 6px;
  }
  .news dl dd {
    padding: 6px 0;
    border-bottom: solid 1px #e5e5e5;
  }
  .news dl dd > span {
    display: block;
    padding-right: 0;
  }

  .sidemenu {
    float: none;
    width: auto;
    margin-bottom: 28px;
  }
  .sidemenu ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .sidemenu ul li {
    min-width: 0;
    line-height: 36px;
    padding-left: 8px;
  }

  .main {
    float: none;
    width: auto;
    overflow: visible;
  }
  .bookbox {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 30px 16px;
    width: auto;
    margin: 0 0 30px;
  }
  .postitem,
  .postitem2 {
    float: none;
    width: auto;
    min-width: 0;
    margin: 0;
  }
  .postitem > dl,
  .postitem > dl dt,
  .postitem > dl dd,
  .postitem2 > dl,
  .postitem2 > dl dt,
  .postitem2 > dl dd {
    width: auto;
  }
  .postitem > dl dt,
  .postitem2 > dl dt {
    display: flex;
    min-height: 172px;
    align-items: flex-start;
    justify-content: center;
  }
  .postitem img,
  .postitem2 img {
    max-width: 100%;
    height: auto;
  }
  .postitem > dl dd a,
  .postitem2 > dl dd a {
    width: auto;
    min-height: 0;
  }
  .morebook {
    float: none;
    text-align: center;
  }
  .morebook a { margin: 0 auto 30px; }

  html body.single div#content.two-column {
    width: auto;
    margin: 0 16px 30px;
  }
  html body.single div#content.two-column div.catbox div.storycontent {
    padding-top: 10px;
  }
  #itempage .itemimg {
    float: none;
    width: auto;
    margin: 0 0 20px;
    text-align: center;
  }
  #itempage .itemimg img {
    max-width: 100%;
    height: auto;
  }
  #itempage .item_name {
    margin-left: 0;
    line-height: 1.5;
  }
  #itempage .exp { margin-bottom: 0; }
  .main_l2 { margin-top: 24px; }
  .list_itemdetail2 .itemlink_amazon {
    display: block;
    margin: 16px 0 0;
  }
  div#wherego_related.wherego_related ul li,
  div.yarpp-related ul li {
    float: none;
    width: auto;
    margin: 0 0 8px;
  }

  #footer_box2,
  #footer_box3 { padding: 20px 0; }
  #footer_box2 ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px 12px;
  }
  #footer_box2 ul li,
  #footer_box2 ul li:first-child {
    float: none;
    min-width: 0;
    padding: 2px 0;
    border: 0;
  }
  #footer_box2 p.gotop {
    float: none;
    margin-top: 16px;
    text-align: right;
  }
  #footer_box3 { overflow-wrap: anywhere; }
}

/* Mobile home: hide the introductory banner and its own spacing only. */
@media screen and (max-width: 767px) {
  body.home #topimage { display: none; }
  body.single.single-post #itempage .related-materials__link {
    align-items: flex-start;
    gap: 10px;
    padding: 13px 12px;
  }
  body.single.single-post #itempage .product-series {
    margin-top: 24px;
    margin-bottom: 28px;
  }
  body.single.single-post #itempage .product-series__title {
    margin-bottom: 12px;
  }
  body.single.single-post #itempage table.product-series__table--strawr {
    min-width: 560px;
  }
  body.single.single-post #itempage table.product-series__table--bite-block {
    min-width: 0;
  }
  body.single.single-post #itempage table.product-series__table--single-column {
    min-width: 0;
  }
  body.single.single-post #itempage table.product-series__table--consumables {
    min-width: 0;
  }
  body.single.single-post #itempage .mokei-content {
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
  }
  body.single.single-post #itempage table.product-guide__grid tr {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    margin-bottom: 12px;
  }
  .structured-article .publication-list { columns: 1; }
  .structured-article.company-article table,
  .structured-article.company-article tbody,
  .structured-article.company-article tr,
  .structured-article.company-article th,
  .structured-article.company-article td {
    display: block;
    width: 100%;
  }
  .structured-article.company-article tr { margin-bottom: 12px; }
  .structured-article.company-article td { border-top: 0; }
}


/* Product detail main images keep their aspect ratio and never exceed the source size. */
body.single.single-post #itempage .itemimg img {
  width: auto;
  height: auto;
  max-width: min(100%, 240px);
  max-height: 300px;
  object-fit: contain;
}

/* Shared semantic product-detail structure. */
body.product-detail-page #itempage h1.item_name {
  margin-bottom: 10px;
  margin-left: 310px;
  padding: 0 0 10px;
  color: #333;
  background: #fff;
  font-size: 138.5%;
  font-weight: bold;
  line-height: 1.4;
}
body.product-detail-page #itempage .product-section-title {
  box-sizing: border-box;
  height: auto;
  margin: 0 0 16px;
  padding: 0 0 6px;
  border: 0;
  border-bottom: 1px solid #222;
  color: #222;
  background: transparent;
  font-family: Arial, "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.65;
}
body.product-detail-page #itempage table.product-series__table { background: #fff; }
body.product-detail-page #itempage table.product-series__table th,
body.product-detail-page #itempage table.product-series__table td { border-color: #222; }
body.product-detail-page #itempage table.product-series__table th,
body.product-detail-page #itempage table.product-series__table tbody tr:nth-child(even) td { background: #f5f5f5; }
body.product-detail-page #itempage table.product-series__table tbody tr:nth-child(odd) td { background: #fff; }
@media screen and (max-width: 767px) {
  body.product-detail-page #itempage h1.item_name { margin-left: 0; line-height: 1.5; }
}

/* News detail pages use a quiet, text-first layout. */
html body.simple-news-article div#content.two-column {
  float: none;
  width: 860px;
  margin: 0 auto 56px;
  color: #2f2f2f;
}
html body.simple-news-article div#content.two-column h1.pagetitle {
  box-sizing: border-box;
  margin: 0;
  padding: 34px 30px 26px;
  border: 0;
  color: #222;
  background: transparent;
  font-size: 26px;
  font-weight: 600;
  line-height: 1.55;
}
html body.simple-news-article div#content.two-column .catbox,
html body.simple-news-article div#content.two-column .post {
  width: auto;
  margin: 0;
  padding: 0;
  background: transparent;
}
html body.simple-news-article div#content.two-column .news-article {
  padding: 0 30px 48px;
  color: #333;
  background: #fff;
}
body.simple-news-article .news-article .news-date {
  margin: 0 0 28px;
  color: #666;
}
body.simple-news-article .news-article .article-section {
  margin: 0 0 40px;
  padding: 0;
  border: 0;
}
body.simple-news-article .news-article .article-section:last-of-type {
  margin-bottom: 32px;
}
body.simple-news-article .news-article h2 {
  margin: 0 0 16px;
  padding: 0 0 6px;
  border: 0;
  border-bottom: 1px solid #222;
  color: #222;
  background: transparent;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.65;
}
body.simple-news-article .news-article h3 {
  margin: 24px 0 8px;
  color: #222;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.7;
}
body.simple-news-article .news-article p,
body.simple-news-article .news-article li,
body.simple-news-article .news-article dt,
body.simple-news-article .news-article dd,
body.simple-news-article .news-article th,
body.simple-news-article .news-article td {
  overflow-wrap: anywhere;
  font-size: 15.4px;
  line-height: 1.95;
}
body.simple-news-article .news-article p { margin-bottom: 16px; }
body.simple-news-article .news-article > .backlink { margin-top: 40px; }
body.simple-news-article .news-article .event-closed {
  margin: 0 0 32px;
  padding: 14px 16px;
  border: 1px solid #d8d8d8;
  color: #333;
  background: transparent;
}
body.simple-news-article .news-article .event-closed strong { font-size: inherit; }
body.simple-news-article .news-article .event-archive,
body.simple-news-article .news-article .security-warning {
  margin: 16px 0;
  padding: 0;
  border: 0;
  color: inherit;
  background: transparent;
}
body.simple-news-article .news-article .warning-list {
  margin-left: 1.6em;
  padding: 0;
  border: 0;
  background: transparent;
}
body.simple-news-article .news-article table {
  width: 100%;
  border-collapse: collapse;
}
body.simple-news-article .news-article th,
body.simple-news-article .news-article td {
  box-sizing: border-box;
  padding: 12px 14px;
  border: 1px solid #222;
  vertical-align: top;
  line-height: 1.8;
}
body.simple-news-article .news-article th {
  width: 22%;
  color: #222;
  background: #f5f5f5;
  text-align: left;
}
body.simple-news-article .news-article .event-details {
  display: grid;
  grid-template-columns: 8em minmax(0, 1fr);
  margin: 0;
  border-top: 1px solid #222;
  border-left: 1px solid #222;
}
body.simple-news-article .news-article .event-details dt,
body.simple-news-article .news-article .event-details dd {
  box-sizing: border-box;
  margin: 0;
  padding: 12px 14px;
  border-right: 1px solid #222;
  border-bottom: 1px solid #222;
  color: #333;
  background: transparent;
  line-height: 1.8;
}
body.simple-news-article .news-article .event-details dt {
  color: #222;
  background: #f5f5f5;
  font-weight: 600;
}

@media screen and (max-width: 767px) {
  html body.simple-news-article div#content.two-column {
    width: auto;
    margin: 0 16px 36px;
  }
  html body.simple-news-article div#content.two-column h1.pagetitle {
    padding: 10px 0 24px;
    font-size: 24px;
    line-height: 1.5;
  }
  html body.simple-news-article div#content.two-column .news-article {
    padding: 0 0 36px;
  }
  body.simple-news-article .news-article .article-section {
    margin-bottom: 34px;
  }
  body.simple-news-article .news-article h2 {
    padding-bottom: 6px;
    font-size: 18px;
  }
  body.simple-news-article .news-article .event-details {
    grid-template-columns: minmax(0, 1fr);
  }
  body.simple-news-article .news-article .event-details dt {
    padding-bottom: 4px;
  }
  body.simple-news-article .news-article .event-details dd {
    padding-top: 4px;
  }
  body.simple-news-article .news-article table,
  body.simple-news-article .news-article tbody,
  body.simple-news-article .news-article tr,
  body.simple-news-article .news-article th,
  body.simple-news-article .news-article td {
    display: block;
    width: 100%;
  }
  body.simple-news-article .news-article tr { margin-bottom: 12px; }
  body.simple-news-article .news-article td { border-top: 0; }
}


/* Four core informational pages use a quiet, text-first article layout. */
html body.simple-static-article div#content.two-column {
  float: none;
  width: 860px;
  margin: 0 auto 56px;
  color: #2f2f2f;
}
html body.simple-static-article div#content.two-column h1.pagetitle {
  box-sizing: border-box;
  margin: 0;
  padding: 34px 30px 26px;
  border: 0;
  color: #222;
  background: transparent;
  font-size: 26px;
  font-weight: 600;
  line-height: 1.55;
}
html body.simple-static-article div#content.two-column .catbox,
html body.simple-static-article div#content.two-column .post {
  width: auto;
  margin: 0;
  padding: 0;
  background: transparent;
}
html body.simple-static-article div#content.two-column .catbox .post .simple-article {
  padding: 0 30px 48px;
  color: #333;
  background: #fff;
}
body.simple-static-article .simple-article .article-section {
  margin: 0 0 40px;
  padding: 0;
  border: 0;
}
body.simple-static-article .simple-article .article-section:last-of-type {
  margin-bottom: 32px;
}
body.simple-static-article .simple-article .article-section h2 {
  margin: 0 0 16px;
  padding: 0 0 6px;
  border: 0;
  border-bottom: 1px solid #222;
  color: #222;
  background: transparent;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.65;
}
body.simple-static-article .simple-article p,
body.simple-static-article .simple-article li,
body.simple-static-article .simple-article dt,
body.simple-static-article .simple-article dd {
  overflow-wrap: anywhere;
  font-size: 15.4px;
  line-height: 1.95;
}
body.simple-static-article .simple-article p { margin-bottom: 16px; }
body.simple-static-article .simple-article .article-note {
  margin: 16px 0;
  padding: 0;
  border: 0;
  color: #4d4d4d;
  background: transparent;
}
body.simple-static-article .simple-article .guide-condition {
  margin: 0 0 28px;
  padding: 0;
  border: 0;
}
body.simple-static-article .simple-article .guide-condition h3 {
  margin: 0 0 8px;
  color: #222;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.7;
}
body.simple-static-article .simple-article .guide-condition h3::before {
  content: none;
}
body.simple-static-article .simple-article .policy-list {
  margin: 0 0 0 1.6em;
}
body.simple-static-article .simple-article .policy-list li {
  margin-bottom: 14px;
}
body.simple-static-article .simple-article .legal-list {
  margin: 20px 0 36px;
  border-top: 1px solid #d8d8d8;
}
body.simple-static-article .simple-article .legal-list dt {
  margin: 0;
  padding: 16px 0 4px;
  color: #222;
  background: transparent;
  font-weight: 600;
}
body.simple-static-article .simple-article .legal-list dd {
  margin: 0;
  padding: 0 0 16px;
  border-bottom: 1px solid #d8d8d8;
  background: transparent;
}
@media screen and (max-width: 767px) {
  html body.simple-static-article div#content.two-column {
    width: auto;
    margin: 0 16px 36px;
  }
  html body.simple-static-article div#content.two-column h1.pagetitle {
    padding: 10px 0 24px;
    font-size: 24px;
    line-height: 1.5;
  }
  html body.simple-static-article div#content.two-column .catbox .post .simple-article {
    padding: 0 0 36px;
  }
  body.simple-static-article .simple-article .article-section {
    margin-bottom: 34px;
    padding: 0;
  }
  body.simple-static-article .simple-article .article-section h2 {
    padding-bottom: 6px;
    font-size: 18px;
  }
  body.simple-static-article .simple-article .guide-condition {
    margin-bottom: 24px;
  }
}
