@charset "UTF-8";
#header {
  background: repeating-linear-gradient(-45deg, #0177bd, #0177bd 5px, #3482bd 5px, #3482bd 8px); }

.header_inr {
  padding: 17px 0; }

.header_inr_top {
  display: flex;
  align-items: center; }

.header_inr_logo_text {
  margin-left: 15px;
  font-size: 16px;
  font-weight: bold;
  color: #fff; }

.header_inr_bottom {
  margin-top: 10px; }

.header_inr_ttl {
  font-size: 50px;
  font-weight: bold;
  color: #fff;
  line-height: 56px; }

.gnav {
  padding-bottom: 15px;
  background-color: #fff;
  position: relative; }

.gnav_list {
  display: flex;
  flex-wrap: wrap; }

.gnav_list_item {
  margin-top: 15px;
  margin-right: 35px;
  padding-left: 13px;
  background-image: url("../images/arrow_sitelink.png");
  background-repeat: no-repeat;
  background-position: left center;
  background-size: auto; }

.gnav_list_item_link {
  display: flex;
  align-items: center; }

.gnav_list_item_logo {
  display: flex;
  align-items: center;
  margin-right: 5px; }

.gnav_list_item_logo__img {
  height: 20px; }

.gnav_list_item_text {
  font-size: 12px; }

.js-drop-down {
  position: relative; }

.header_sns {
  height: 0; }
.header_sns .shareBtn {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  width: 330px;
  margin-left: auto;
  list-style: none;
  position: relative;
  top: -40px; }

.breadcrumb {
  margin: 15px auto 0;
  font-size: 14px; }

.breadcrumb_list {
  display: flex;
  justify-content: flex-start;
  white-space: nowrap;
  list-style: none;
  overflow-x: auto; }

.breadcrumb_list_item {
  padding-right: 30px;
  position: relative; }

.breadcrumb_list_item:after {
  content: '';
  display: inline-block;
  width: 8px;
  height: 8px;
  margin: auto;
  border-right: 1.5px solid #333;
  border-bottom: 1.5px solid #333;
  position: absolute;
  top: 0;
  right: 12px;
  bottom: 0;
  transform: rotate(-45deg); }

.breadcrumb_list_item.current {
  padding-right: 0; }

.breadcrumb_list_item.current:after {
  display: none; }

#archive #content .bnrProducts {
  padding-top: 35px; }

#content .bnrProducts ul li:first-child {
  padding-top: 0; }

#column_list h2.column_list_item_ttl {
  display: -webkit-box;
  margin-top: 10px;
  font-size: 18px;
	line-height: 1.6;
  word-break: break-all;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2; }

.column_list {
  display: flex;
  flex-wrap: wrap; }

.recentPost + .column_list {
  margin-top: 80px;
 /* border-top: 1px solid #ccc;*/ }

.column_list_item {
  width: calc((100% - 20px) / 3); }

.column_list_item_data {
  display: inline-block;
  font-weight: bold;
  line-height: 17px;
  margin: 3px 3px 0 0;
  vertical-align: middle; }

.column_list_item_category {
  display: inline-block;
  margin: 3px 0 0 0;
  padding: 0 18px;
  font-size: 12px;
  line-height: 17px;
  color: #ffffff;
  background-color: #0177bd;
  vertical-align: middle; }

.bnr_fullwid {
  margin-top: 30px; }

.postList_btm_border {
  width: 100%;
  height: 1px;
  background-color: #ccc;
  margin-top: 30px; }

.rec_product_list {
  display: flex;
  flex-wrap: wrap;
  gap: 20px; }

.rec_product_list_item {
  width: calc((100% - 40px) / 3); }

.rec_product_list_item_pic__img {
  width: 100%; }

.rec_product_list_item_text {
  display: -webkit-box;
  margin-top: 10px;
  font-size: 20px;
  font-weight: bold;
  word-break: break-all;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  text-align: left !important; }

.rec_product_bnr_item + .rec_product_bnr_item {
  margin-top: 20px; }

h1.category_inr_txt{
  position: relative;
  color: #4D4D4D;
  font-weight: normal;
  padding: 1rem 2rem 1rem calc(2rem + 12px); /* 左帯ぶんだけ増やす */
  border-left: 0; /* border-left は使わない */
}

h1.category_inr_txt::before{
  content: "";
  position: absolute;
  left: 0;
  top: .9rem;  /* 帯の上下位置（好みで調整） */
  bottom: .9rem;   /* 帯の上下位置（好みで調整） */
  width: 8px;  /* もとの border-left と同じ太さ */
  background: #0177bd;
  border-radius: 8px; /* ← ここが「四角の4角を丸く」 */
}

/* =========================
   パソコン表示
========================= */
@media screen and (min-width: 768px) {

.sp_only {
  display: none; }

#header .inner {
  height: auto; }

.body_column #content .main {
  width: 100%;
  float: none; }
.body_column #content .article {
  padding: 0; }
.body_column #content .related {
  padding: 20px 20px 25px; }
.body_column #content .backnumber {
  margin-top: 25px;
  padding: 0; }

  /* レイアウト */
.body_column .main {
  display: flex;
  justify-content: space-between;
  background-color: #fff; }
.body_column .main .main_content {
  width: calc(1084px - 300px);
  padding: 35px 0 0 0; }
.body_column .main .side_menu {
  width: 300px;
  padding: 35px 25px; }

  /* レイアウト */
.side_bnr_list_item {
  text-align: center; }
.side_bnr_list_item + .side_bnr_list_item {
  margin-top: 10px; }

.category_block {
  display: none;
  width: 100%;
  padding: 15px 0;
  background-color: #fff;
  position: absolute;
  top: 86px;
  left: 0;
  z-index: 100; }
.category_block .inner {
  display: flex;
  flex-wrap: wrap; }

.category_block_list {
  width: calc((100% - 40px) / 5); }
.category_block_list:not(:nth-child(5n)) {
  margin-right: 10px; }

.category_block_list_item + .category_block_list_item {
  margin-top: 20px; }

.column_list_item {
  width: calc((100% - 20px) / 3); }
.column_list_item:not(:nth-of-type(3n)) {
  margin-right: 10px; }
.column_list_item:nth-of-type(n+4) {
  margin-top: 20px; }

  /* 記事詳細 */
#post01 #content .bnrProducts {
  padding-top: 35px; }

  /* 記事詳細 */
  /* 目次 */
.block-toc {
  margin-top: 30px;
  padding: 35px 40px 40px;
  background-color: #F2F2F0; }

.block-toc-ttl {
  margin: 0 !important;
  padding: 0;
  font-size: 24px; }

.block-toc-list-1st {
  margin-top: 28px !important;
  margin-left: 0 !important; }

.block-toc-list-1st > li + li {
  margin-top: 32px; }

.block-toc-list-1st > li > a {
  position: relative;
  padding-left: 26px;
  font-size: 20px; }

.block-toc-list-1st > li > a::before {
  content: '';
  display: block;
  position: absolute;
  top: 7px;
  left: 0;
  width: 10px;
  height: 10px;
  background-color: #0177bd; }

.block-toc-list-2nd {
  margin-top: 20px !important;
  margin-left: 0 !important; }

.block-toc-list-2nd > li {
  margin-top: 14px;
  padding-left: 25px; }

.block-toc-list-2nd > li > a {
  position: relative;
  padding-left: 30px;
  font-size: 18px;
  text-decoration: none; }

.block-toc-list-2nd > li > a::before {
  content: '';
  display: block;
  position: absolute;
  top: 10px;
  left: 0;
  width: 20px;
  height: 1px;
  background-color: #3F3D3C; }

.category_inr_ttl {
  margin: 0 0 10px 0;}

.gnav { 
	height: auto !important; }
}

/* =========================
   スマホ表示
========================= */
@media screen and (max-width: 767px) {
.pc_only {
  display: none; }

.header_inr {
  padding: 10px 0;
  position: relative; }

.header_inr_top,
.header_inr_bottom {
  padding-left: 55px; }

.header_inr_bottom {
  margin-top: 5px; }

.header_inr_logo__img {
  width: 100%;
  max-width: 80px; }

.header_inr_logo_text {
  margin-left: 10px;
  font-size: 12px; }

.header_inr_ttl {
  font-size: 22px;
  line-height: 24px; }

.header_hum_sp {
  width: 45px;
  height: 45px;
  margin: auto;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0; }
.header_hum_sp .header_hum_line {
  display: inline-block;
  width: 35px;
  height: 3px;
  margin: auto;
  background-color: #fff;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0; }
.header_hum_sp .header_hum_line:first-child {
  top: -23px; }
.header_hum_sp .header_hum_line:last-child {
  top: 23px; }

.gnav {
  width: 100%;
  height: 100vh;
  padding-top: 50px;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 101;
  transform: translateX(-100%);
  transition: transform .2s;
  overflow-y: scroll; }
.gnav.open {
  transform: translateX(0); }
.gnav .js-hum-close {
  display: block;
  width: 30px;
  height: 30px;
  position: absolute;
  top: 10px;
  right: 10px; }
.gnav .js-hum-close::before, .gnav .js-hum-close::after {
  content: '';
  display: block;
  width: 100%;
  height: 2px;
  margin: auto;
  background-color: #333;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0; }
.gnav .js-hum-close::before {
  transform: rotate(45deg); }
.gnav .js-hum-close::after {
  transform: rotate(-45deg); }

.gnav_list {
  display: block; }

.gnav_list_item {
  margin-top: 20px;
  margin-right: 0; }
.gnav_list_item:first-child {
  margin-top: 0; }

.body_column .main .side_menu {
  margin-top: 1.8em; }

.side_bnr_list {
  display: flex;
  flex-wrap: wrap; }

.side_bnr_list_item {
  width: calc((100% - 3.2%) / 2); }
.side_bnr_list_item:nth-child(even) {
  margin-left: 3.2%; }
.side_bnr_list_item:nth-child(n+3) {
  margin-top: 1em; }

.category_block_ttl {
  margin: 20px -3% 0;
  padding: 10px;
  border: 1px solid #707070; }

.category_block {
  margin: 0 -3%; }

.category_block .inner {
  padding: 0; }

.category_block_list {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap; }

.category_block_list_item {
  width: 50%;
  border: 1px solid #707070; }
.category_block_list_item:first-child, .category_block_list_item:nth-child(n+2) {
  border-top: none; }
.category_block_list_item:nth-child(even) {
  border-left: none; }

.category_block_list_item_link {
  display: flex;
  align-items: center;
  width: 100%;
  height: 100%;
  padding: 10px; }

.header_sns {
  height: auto;
  margin-top: 15px; }
.header_sns .shareBtn {
  width: auto;
  position: static; }

#column_list h2.column_list_item_ttl {
  margin-top: 10px;
  font-size: 16px;
	line-height: 1.8;}

#column_list {
  margin-top: 30px;}

.column_list {
  justify-content: space-between; }

.recentPost + .column_list {
  margin-top: 20px;
  padding-top: 15px; }

.column_list_item {
  width: calc((100% - 15px) / 2); }
.column_list_item:nth-of-type(n+3) {
  margin-top: 15px; }

.column_list_item_data {
  font-size: 12px; }

.column_list_item_category {
  padding: 0.1em 1.5em 0;
  font-size: 10px; }

  /* 目次 */
.block-toc {
  margin-top: 30px;
  padding: 4.27vw;
  background-color: #F2F2F0; }

.block-toc-ttl {
  margin: 0 !important;
  padding: 0;
  font-size: 5.4vw;
  font-weight: normal; }

.block-toc-list-1st {
  margin-top: 6vw !important; }

.block-toc-list-1st > li + li {
  margin-top: 7vw; }

.block-toc-list-1st > li > a {
  display: block;
  position: relative;
  padding-left: 6vw;
  font-size: 4.8vw; }

.block-toc-list-1st > li > a::before {
  content: '';
  display: block;
  position: absolute;
  top: 2.2vw;
  left: 0;
  width: 2.67vw;
  height: 2.67vw;
  background-color: #0177bd; }

.block-toc-list-2nd {
  margin-top: 4vw !important; }

.block-toc-list-2nd > li {
  margin-top: 3.73vw;
  padding-left: 6vw; }

.block-toc-list-2nd > li > a {
  display: block;
  position: relative;
  padding-left: 8vw;
  font-size: 4.27vw;
  text-decoration: none; }

.block-toc-list-2nd > li > a::before {
  content: '';
  display: block;
  position: absolute;
  top: 2.67vw;
  left: 0;
  width: 5.33vw;
  height: 1px;
  background-color: #3F3D3C; }

.scrollWrapX {
  padding-bottom: 20px;
  overflow-x: scroll; }

.rec_product_list {
  display: inline-block;
  width: 100%;
  white-space: nowrap; }

.rec_product_list_item {
  display: inline-block;
	width: calc((100% - 6%) / 2);
  white-space: wrap; }
.rec_product_list_item + .rec_product_list_item {
  margin-left: 6%; }

.rec_product_list_item_text {
  font-size: 16px; } 

.category_inr_ttl {
  margin-bottom: 10px; }

.category_inr_lead{
  font-size: 14px;
  margin-bottom: 15px;} 

#reco7 .np-reco-items{
  display:flex;
  flex-wrap:wrap;
  margin:-6px;
  }
#reco7 .np-reco-items > section{
  width:50%;
  flex:0 0 50%;
  box-sizing:border-box;
  padding:6px;
  }
#reco7 .np-reco-items > section > a{
  display:block;
  border:1px solid #e5e5e5;
  border-radius:8px;
  overflow:hidden;
  background:#fff;
  box-shadow:0 2px 10px rgba(0,0,0,.06);
  text-decoration:none;
  color:inherit;
  }
#reco7 .np-reco-items img{
  display:block;
  width:100%;
  height:auto;
  }
#reco7 .np-reco-items .column-truncate-zen{
  /*  display:-webkit-box; */
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
  padding:3px;
  font-size:14px;
  line-height:1.6;
  word-break:break-word;
  font-weight: bold;
  }

  /* =========================
   reco6：おすすめ商品（無限ループ横スライダー＋矢印）
   - JSで #reco6 に viewport/track を作る前提
   ========================= */
#reco6{
  position:relative; /* 矢印の基準 */
  }

#reco6 .np-carousel-viewport{
  overflow:hidden;
  width:100%;
  }

#reco6 .np-carousel-track{
  display:flex;
  will-change:transform;
  transition:transform .35s ease;
  touch-action:pan-y;
  }

  /* 1列（1枚=100%） */
#reco6 .np-carousel-track > section{
  flex:0 0 100%;
  max-width:100%;
  box-sizing:border-box;
  padding:6px;
  }

#reco6 .np-carousel-track > section > a{
  display:block;
  border:1px solid #e5e5e5;
  border-radius:8px;
  overflow:hidden;    /* 枠からはみ出さない */
  background:#fff;
  box-shadow:0 2px 10px rgba(0,0,0,.06);
  text-decoration:none;
  color:inherit;
  }

#reco6 .np-carousel-track img{
  display:block;
  width:100%;
  height:auto;
  }

  /* 商品名：2行… */
.np-carousel-track .column-truncate-zen,
.np-carousel-track .truncate-zen{
  /*display:-webkit-box;*/
  -webkit-box-orient:vertical;
   /* -webkit-line-clamp:2;*/
  overflow:hidden;
  padding:0 10px;
  font-size:13px;
  line-height:1.4;
  word-break:break-word;
  }

  /* 価格：枠内に収める + 改行させない */
.np-carousel-track .item_price_{
  margin:0;
  padding:0 12px 12px;
  font-size:13px;
  font-weight:700;
  line-height:1.4;
  white-space:nowrap;   /* 「税込価格：」と価格を同一行に */
  overflow:hidden;
  /*  text-overflow:ellipsis; */
  }
.np-carousel-track .item_price_label,
.np-carousel-track .item_price_value{
  display:inline;
  white-space:nowrap;
  }
  /* 「税込価格：¥16131」にする（値に¥を付与） */
.np-carousel-track .item_price_value::before{
  content:"¥";
  }

  /* 左右矢印ボタン（JSが生成） */
#reco6 .np-carousel-btn{
  position:absolute;
  top:40%;
  transform:translateY(-50%);
  width:36px;
  height:36px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.12);
  background:rgba(255,255,255,.92);
  box-shadow:0 2px 10px rgba(0,0,0,.10);
  z-index:5;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
  cursor:pointer;
  }
#reco6 .np-carousel-btn--prev{ left:8px; }
#reco6 .np-carousel-btn--next{ right:8px; }

  /* 三角アイコン（CSS描画） */
#reco6 .np-carousel-btn::before{
  content:"";
  width:0;height:0;
  border-top:7px solid transparent;
  border-bottom:7px solid transparent;
  display:block;
  }
#reco6 .np-carousel-btn--prev::before{
  border-right:10px solid #333;
  margin-left:-2px;
  }
#reco6 .np-carousel-btn--next::before{
  border-left:10px solid #333;
  margin-right:-2px;
  }
#reco7 .np-reco-meta{
  padding: 10px 12px 0;
  }
#reco7 .np-reco-date{
  display:block;
  font-size:11px;
  line-height:1.4;
  color:#6b7280;
  font-weight:600;
  }
#reco7 .np-reco-cat{
  display:inline-block;
  margin-top:6px;
  padding:4px 10px;
  background:#0177bd; /* 指定色 */
  color:#fff;
  border-radius:999px;
  font-size:11px;
  line-height:1;
  max-width:100%;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  }

  /* タイトル（既存paddingと二重になる場合があるので調整） */
#reco7 span.column-truncate-zen{
  font-size:13px;
  line-height:1.6;
  }
#column_list .column_list_item_data{ font-size: 11px; }
#column_list .column_list_item_category{ font-size: 11px; }

  /* reco7のカード間隔（現状 12px相当）を、過去記事の 15px に寄せる */
#reco7 .np-reco-items{
  margin: calc(-15px / 2);
  }
#reco7 .np-reco-items > section{
  padding: calc(15px / 2);
  }

  /* 角丸も過去記事（10px）に合わせる */
#reco7 .np-reco-items > section > a{
  border-radius: 10px;
  }

  /* reco7のタイトル：過去記事（16px/line-height 1.8）に寄せる */
#reco7 .np-reco-items .column-truncate-zen{
  font-size: 16px;
  line-height: 1.8;
  padding: 0 12px 12px 12px;
  }
#reco7 span.column-truncate-zen{
  font-size: 16px;
  line-height: 1.8;
  }
}

/* 見出しが #column_list の子に居る前提：カードと同列扱いにしない */
#column_list > .np-past-heading{
  width: 100%;
  flex: 0 0 100%;
  box-sizing: border-box;
}

/* =========================================================
   Heading variants
   - 強め：メインの「最新記事」「過去記事」
   - 弱め：おすすめ（reco）
   - PCサイド：帯（背景）で目立たせる（メインと同じ見出し感を回避）
   ========================================================= */

:root{
  --np-accent: #0177bd;
  --np-text: #222;
  --np-muted: #6b7280;
  --np-line: #d9d9d9;
  --np-side-band: #ffe8d1; /* サイド見出しの帯色 */
  --np-side-accent: #D35400;
}

/* -------------------------
   0) 共通ベース（まずリセット寄り）
   ------------------------- */
div.np-past-heading__ttl{
  display: flex;
  align-items: center;
  gap: 10px;

  color: var(--np-text);
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: .02em;

  margin: 18px 0 10px;
  padding: 0 0 8px;

  border: 0; /* 下線は用途別で付ける */
  background: none;
}
div.np-past-heading__ttl::before{
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 2px;
  background: var(--np-accent);
  flex: 0 0 auto;
}

/* -------------------------
   1) 強め（メイン：最新記事/過去記事）
   ------------------------- */
.main_content .recentPost > div.np-past-heading__ttl,
.main_content .np-past-heading > div.np-past-heading__ttl{
  font-weight: 800 !important;
  border-bottom: 1px solid var(--np-line);
  padding-bottom: 10px;
  margin-top: 22px;
}

/* 強めはアクセントも少し強く */
.main_content .recentPost > div.np-past-heading__ttl::before,
.main_content .np-past-heading > div.np-past-heading__ttl::before{
  width: 12px;
  height: 12px;
  border-radius: 3px;
}

/* -------------------------
   2) 弱め（おすすめ：reco）
   - メインに出る場合（SPで挿入）も、ここで弱めに寄せる
   ------------------------- */
.np-reco-block > .np-past-heading__ttl{
  color: var(--np-text);
  font-weight: 700;
  border-bottom: 1px solid rgba(0,0,0,.10);
  padding-bottom: 8px;
  margin-top: 16px;
}
.np-reco-block > .np-past-heading__ttl::before{
  width: 8px;
  height: 8px;
  opacity: .9;
}

/* どこに居ても .np-reco-block の見出しなら帯にする */
.np-reco-block > .np-past-heading__ttl{
  border: 0;
  padding: 12px 14px;
  margin: 14px 0 10px;
  background: var(--np-side-band);
  border-radius: 10px;
  position: relative;
  display: block;
  padding-left: 18px;
}

.np-reco-block > .np-past-heading__ttl::before{
  content: none;
}

.np-reco-block > .np-past-heading__ttl::after{
  content: "";
  position: absolute;
  left: 0;
  top: 10px;
  bottom: 10px;
  width: 5px;
  border-radius: 10px;
  background: var(--np-side-accent);
}


.np-reco-block > div.np-past-heading__ttl{
  padding-left: 18px;
}

@media screen and (min-width: 768px){
  div.np-past-heading__ttl{ font-size: 18px; }
  aside[data-np-side-reco] .np-reco-block > div.np-past-heading__ttl{ font-size: 16px; }
  section.np-reco-block.np-reco-articles[data-np-reco="articles"] {margin-top: 100px;}
}
@media screen and (max-width: 767px){
  div.np-past-heading__ttl{ font-size: 16px; }
  div.np-reco-block{ margin-top: 50px;}
  section.np-reco-block.np-reco-articles[data-np-reco="articles"] {margin-top: 50px;}
}

@media screen and (min-width: 768px){
#reco6 .np-reco-items,
#reco7 .np-reco-items{
  display: flex;
  flex-direction: column;
  gap: 12px;
  }

#reco6 .np-reco-items > section > a.product-title,
#reco7 .np-reco-items > section > a.product-title{
  display: block;
  border: 1px solid #e5e5e5;
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 2px 10px rgba(0,0,0,.06);
  text-decoration: none;
  color: inherit;
  }

#reco6 .np-reco-items img{
  display: block;
  width: 100%;
  height: auto;
  padding: 10px 10px 0 10px;
  }


#reco7 .np-reco-items img{
  display: block;
  width: 100%;
  height: auto;
  }

#reco6 .np-reco-items .column-truncate-zen,
#reco6 .np-reco-items .truncate-zen,
#reco7 .np-reco-items .column-truncate-zen,
#reco7 .np-reco-items .truncate-zen{
  display: block;
  padding: 10px 12px 12px;
  font-size: 16px;
  line-height: 1.6;
  font-weight: 700;
  word-break: break-word;
  }


  /* reco6（商品）だけ：価格 */
#reco6 .np-reco-items .item_price_{
  padding: 0 12px 12px 12px;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.4;
  white-space: nowrap;
  }
#reco6 .np-reco-items .item_price_value::before{
  content: "¥";
  }
}

/* =========================================================
   reco7 meta (date + category badge) : PC/SP共通で効かせる
   ========================================================= */

/* メタ枠 */
#reco7 .np-reco-meta{
  padding: 10px 12px 0;
}

/* 日付 */
#reco7 .np-reco-date{
  display: block;
  font-size: 12px;
  line-height: 1.4;
  color: #6b7280;
  font-weight: 600;
}

/* カテゴリバッジ（=カテゴリアイコン） */
#reco7 .np-reco-cat{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 6px;
  padding: 4px 10px;
  background: #0177bd;
  color: #fff;
  border-radius: 999px;
  font-size: 12px;
  line-height: 1;
  font-weight: 700;
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* （任意）カテゴリの“アイコン感”を足す：左に小丸 */
#reco7 .np-reco-cat::before{
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: rgba(255,255,255,.9);
  flex: 0 0 auto;
}

@media screen and (min-width: 768px){
.body_column .main > aside[data-np-side-reco]{
  width: 300px;
  flex: 0 0 300px;
  padding: 35px 25px;   /* 既存 side_menu に合わせるなら */
  box-sizing: border-box;
  }

  aside[data-np-side-reco] .np-reco-block{
  width: 100%;
  box-sizing: border-box;
  }

  aside[data-np-side-reco] .np-reco-block > .np-past-heading__ttl,
  aside[data-np-side-reco] .np-reco-block > h2{
  width: 100%;
  box-sizing: border-box;
  }

  aside[data-np-side-reco] .np-reco-articles .column_list{
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  padding: 0;
  }

  aside[data-np-side-reco] #reco6,
  aside[data-np-side-reco] #reco7,
  aside[data-np-side-reco] #reco6 .np-reco-items,
  aside[data-np-side-reco] #reco7 .np-reco-items{
  width: 100%;
  box-sizing: border-box;
  }

#column_list .column_list_item_link:hover{
  box-shadow: 0 8px 22px rgba(0,0,0,.10);
  transform: translateY(-1px);
  transition: box-shadow .2s ease, transform .2s ease;
  }

#column_list .column_list_item_data{ font-size: 12px; }
#column_list .column_list_item_category{ font-size: 12px; }
}


#column_list .column_list_item_link{
  display: block;
  border: 1px solid #e5e5e5;
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 2px 10px rgba(0,0,0,.06);
  text-decoration: none;
  color: inherit;
  padding: 12px;
  box-sizing: border-box;
}

#column_list .column_list_item_pic{
  margin: -12px -12px 10px;
}
#column_list .column_list_item_pic img{
  display: block;
  width: 100%;
  height: auto;
}

#column_list .column_list_item_data{
  display: block;
  margin: 0 !important;
  font-weight: 600;
  line-height: 1.4;
  color: #6b7280;
}

#column_list .column_list_item_category{
  display: inline-flex;
  align-items: center;
  gap: 6px;

  margin: 8px 0 0 !important;
  padding: 4px 10px !important;
  background: #0177bd;
  color: #fff;
  border-radius: 999px;

  font-weight: 700;
  line-height: 1;
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

#column_list h2.column_list_item_ttl{
  margin: 10px 0 0 !important;
}

@media (max-width: 767px){
  #reco6 .np-carousel-pager{
    margin-top: 8px;
    display:flex;
    justify-content:center;
    gap:8px;
  }
  #reco6 .np-carousel-dot{
    width:8px; height:8px;
    border-radius:50%;
    border:0;
    background:#ccc;
  }
  #reco6 .np-carousel-dot.is-active{
    background:#333;
  }
  #reco6 .np-carousel-counter{
    margin-top: 8px;
    text-align:center;
    font-size:12px;
    color:#666;
  }
}

/* 記事ページだけ：side_area を右カラムとして確定させる */
@media (min-width: 768px){
  body.body_column.dir_article #content .inner > main.main{
    display: flex !important;      /* 念のため */
    flex-wrap: nowrap !important;  /* 右が落ちるのを防止 */
    gap: 24px;
    align-items: flex-start;
  }

  /* 固定幅(1084px前提)を殺して可変にする */
  body.body_column.dir_article #content .inner > main.main > .main_content{
    width: auto !important;
    flex: 1 1 auto !important;
    min-width: 0;
  }

  /* 右カラム箱：side_menu の代わりに side_area を使う */
  body.body_column.dir_article #content .inner > main.main > .side_area{
    width: 300px !important;
    flex: 0 0 300px !important;
    padding: 35px 25px !important;  /* side_menu と同等にするなら */
    box-sizing: border-box;
    min-width: 0;
  }
}

@media (max-width: 767px){
  /* SPは自然に記事下へ（DOM順が main_content → side_area ならOK） */
  body.body_column.dir_article #content .inner > main.main{
    display: block !important;
  }
  body.body_column.dir_article #content .inner > main.main > .side_area{
    width: auto !important;
    padding: 0 !important;         /* SPの余白はお好みで */
    margin-top: 24px;
  }
}

/* ===== article: reco18 should look like reco6 ===== */
#reco6, #reco18{ position: relative; }

#reco6 .np-carousel-viewport,
#reco18 .np-carousel-viewport{
  overflow:hidden;
  width:100%;
}

#reco6 .np-carousel-track,
#reco18 .np-carousel-track{
  display:flex;
  will-change:transform;
  transition:transform .35s ease;
  touch-action:pan-y;
}

#reco6 .np-carousel-track > section,
#reco18 .np-carousel-track > section{
  flex:0 0 100%;
  max-width:100%;
  box-sizing:border-box;
  padding:6px;
}

#reco6 .np-carousel-btn,
#reco18 .np-carousel-btn{
  position:absolute;
  top:40%;
  transform:translateY(-50%);
  width:36px;
  height:36px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.12);
  background:rgba(255,255,255,.92);
  box-shadow:0 2px 10px rgba(0,0,0,.10);
  z-index:5;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
  cursor:pointer;
}
#reco6 .np-carousel-btn--prev,
#reco18 .np-carousel-btn--prev{ left:8px; }
#reco6 .np-carousel-btn--next,
#reco18 .np-carousel-btn--next{ right:8px; }

#reco6 .np-carousel-btn::before,
#reco18 .np-carousel-btn::before{
  content:"";
  width:0;height:0;
  border-top:7px solid transparent;
  border-bottom:7px solid transparent;
  display:block;
}
#reco6 .np-carousel-btn--prev::before,
#reco18 .np-carousel-btn--prev::before{
  border-right:10px solid #333;
  margin-left:-2px;
}
#reco6 .np-carousel-btn--next::before,
#reco18 .np-carousel-btn--next::before{
  border-left:10px solid #333;
  margin-right:-2px;
}

/* ===== article: reco19 should look like reco7 (meta etc.) ===== */
#reco7 .np-reco-meta,
#reco19 .np-reco-meta{ padding: 10px 12px 0; }

#reco7 .np-reco-date,
#reco19 .np-reco-date{
  display:block;
  font-size:11px;
  line-height:1.4;
  color:#6b7280;
  font-weight:600;
}

#reco7 .np-reco-cat,
#reco19 .np-reco-cat{
  display:inline-block;
  margin-top:6px;
  padding:4px 10px;
  background:#0177bd;
  color:#fff;
  border-radius:999px;
  font-size:11px;
  line-height:1;
  max-width:100%;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

#reco7 span.column-truncate-zen,
#reco19 span.column-truncate-zen{
  font-size:16px;
  line-height:1.8;
}

#reco19 .np-reco-items{
  display:flex;
  flex-wrap:wrap;
  margin: calc(-15px / 2);
}
#reco19 .np-reco-items > section{
  width:50%;
  flex:0 0 50%;
  box-sizing:border-box;
  padding: calc(15px / 2);
}
#reco19 .np-reco-items > section > a{
  display:block;
  border:1px solid #e5e5e5;
  border-radius:10px;
  overflow:hidden;
  background:#fff;
  box-shadow:0 2px 10px rgba(0,0,0,.06);
  text-decoration:none;
  color:inherit;
}
#reco19 .np-reco-items img{
  display:block;
  width:100%;
  height:auto;
}
#reco19 .np-reco-meta{ padding:10px 12px 0; }
#reco19 .np-reco-date{
  display:block;
  font-size:12px;
  line-height:1.4;
  color:#6b7280;
  font-weight:600;
}
#reco19 .np-reco-cat{
  display:inline-block;
  margin-top:6px;
  padding:4px 10px;
  background:#0177bd;
  color:#fff;
  border-radius:999px;
  font-size:12px;
  line-height:1;
  max-width:100%;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
#reco19 span.column-truncate-zen{
  font-size:16px;
  line-height:1.8;
  padding: 0 12px 12px 12px;
  font-weight:700;
}

/* ===== FIX: article reco19 stays 2-col after SP->PC ===== */
@media (min-width: 768px){

  /* まず column_list 自体をflexから解除（side内のreco記事枠） */
  body.body_column.dir_article aside[data-np-side-reco] section[data-np-reco="articles"] .column_list{
    display: block !important;
  }

  /* reco19 の items を縦積みに固定 */
  body.body_column.dir_article aside[data-np-side-reco] #reco19 .np-reco-items{
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    gap: 12px !important;
    margin: 0 !important;
  }

  /* 2列の原因（width:50% / flex:0 0 50%）を潰す */
  body.body_column.dir_article aside[data-np-side-reco] #reco19 .np-reco-items > section{
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }
}

/* PC時：記事の reco18 を TOP/カテゴリの reco6 と同じ縦積みにする */
@media (min-width: 768px){
  body.body_column.dir_article aside[data-np-side-reco] #reco18 .np-reco-items{
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    gap: 12px !important;
    margin: 0 !important;
  }

  body.body_column.dir_article aside[data-np-side-reco] #reco18 .np-reco-items > section{
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
    box-sizing: border-box !important;
    padding: 0 !important;
  }
}

/* ===== reco18: use same carousel styles as reco6 ===== */
#reco18{ position:relative; }

#reco18 .np-carousel-viewport{
  overflow:hidden;
  width:100%;
}

#reco18 .np-carousel-track{
  display:flex;
  will-change:transform;
  transition:transform .35s ease;
  touch-action:pan-y;
}

#reco18 .np-carousel-track > section{
  flex:0 0 100%;
  max-width:100%;
  box-sizing:border-box;
  padding:6px;
}

#reco18 .np-carousel-track > section > a{
  display:block;
  border:1px solid #e5e5e5;
  border-radius:8px;
  overflow:hidden;
  background:#fff;
  box-shadow:0 2px 10px rgba(0,0,0,.06);
  text-decoration:none;
  color:inherit;
}

#reco18 .np-carousel-track img{
  display:block;
  width:100%;
  height:auto;
}

/* 矢印（#reco6と同等） */
#reco18 .np-carousel-btn{
  position:absolute;
  top:40%;
  transform:translateY(-50%);
  width:36px;
  height:36px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.12);
  background:rgba(255,255,255,.92);
  box-shadow:0 2px 10px rgba(0,0,0,.10);
  z-index:5;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
  cursor:pointer;
}
#reco18 .np-carousel-btn--prev{ left:8px; }
#reco18 .np-carousel-btn--next{ right:8px; }

#reco18 .np-carousel-btn::before{
  content:"";
  width:0;height:0;
  border-top:7px solid transparent;
  border-bottom:7px solid transparent;
  display:block;
}
#reco18 .np-carousel-btn--prev::before{
  border-right:10px solid #333;
  margin-left:-2px;
}
#reco18 .np-carousel-btn--next::before{
  border-left:10px solid #333;
  margin-right:-2px;
}

@media screen and (min-width: 768px){

  /* reco6 と同じ：縦積み */
  #reco18 .np-reco-items{
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
  }

  /* reco6 と同じ：カード枠 */
  #reco18 .np-reco-items > section > a.product-title,
  #reco18 .np-reco-items > section > a{
    display: block;
    border: 1px solid #e5e5e5;
    border-radius: 10px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 2px 10px rgba(0,0,0,.06);
    text-decoration: none;
    color: inherit;
  }

  /* reco6 と同じ：画像 */
  #reco18 .np-reco-items img{
    display: block;
    width: 100%;
    height: auto;
    padding: 10px 10px 0 10px;
  }

  /* reco6 と同じ：タイトル */
  #reco18 .np-reco-items .column-truncate-zen,
  #reco18 .np-reco-items .truncate-zen{
    display: block;
    padding: 10px 12px 12px;
    font-size: 16px;
    line-height: 1.6;
    font-weight: 700;
    word-break: break-word;
  }

  /* reco6 と同じ：価格 */
  #reco18 .np-reco-items .item_price_{
    padding: 0 12px 12px 12px;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.4;
    white-space: nowrap;
  }
  #reco18 .np-reco-items .item_price_value::before{
    content: "¥";
  }
}