.order-btn-row {
  font-size: 0; /* インライン要素の隙間を消す */
  line-height: 0;
}

h2 {
  font-size: 1.4em;
  margin: 15px 0 15px 0;
  padding: 3px 0 0 5px;
  border-left: 15px solid #527250;
  border-top: 0px solid #000000;
  background-color: #e6e6e6;
	line-height: 1.4em;
}

h3 {
  font-size: 1.3em;
  margin: 20px 0 10px 0;
  line-height: 1.4em;
  font-weight: bold;
  color: #363130;
}

.productGeneral p {
	font-size: 0.8em;
}

.productGeneral table {
	font-size: 0.8em;
}


/* スマホ時 (768px以下) */
@media screen and (max-width: 768px) {
  h2 {
    font-size: 1.1em;
    line-height: 1.4em; /* PCと同じ高さ */
	  padding: 10px 10px 10px 0;
  }
	h3 {
  font-size: 1em;
  margin: 20px 0 10px 0;
  line-height: 1.4em;
}
}

iframe {
  border: none;
}

hr {
  border: none;                 /* デフォルトの枠を消す */
  border-top: 1px dotted #999;  /* 細い点線を指定 */
  margin: 20px 0;               /* 上下の余白はお好みで */
}

.pc-only { display:block; }
.sp-only { display:none; }

@media screen and (max-width: 768px) {
  .pc-only { display:none; }
  .sp-only { display:block; }
}

.page_title span,
.sp_page_title span,
.page_sub_title span,
.list_title span {
  color:#8B4513; /* おしゃれなブラウン */
}

.page_title {
	text-align:center; 
	font-family:'メイリオ',sans-serif; 
	font-size:32px;
	max-width:1100px;
	font-weight: bold;
}
.page_title span {
	font-size:40px;
}
.sp_page_title {
	text-align:center; 
	font-family:'メイリオ',sans-serif; 
	font-size:23px;
	font-weight: bold;
	margin:15px 0;
}
.sp_page_title span {

	font-size:25px;
}
.page_sub_title{
	font-size:20px; 
	font-weight:bold; 
	color:#444; 
	margin-bottom:10px;
}
.page_sub_title span {

}

.list_title {
	font-size:18px; 
	line-height:1.8; 
	text-align:left; 
	display:inline-block;
}
.list_title span {
	color:#d00;
}
.list{
	font-size:18px; 
	line-height:1.8; 
	text-align:left; 
	display:inline-block;
}
/* SP既定：縦並び（そのまま） */
.type-list{
  font-size:18px;
  line-height:1.6;
  margin:0 10px;
  list-style:none;
  padding-left:0;
  display:grid;
  grid-template-columns: 1fr; /* 縦並び */
  gap:8px;
}
.type-list li{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 14px;
  border:1px solid #ddd;
  border-radius:999px;   /* ピル型 */
  background:#fff;
  white-space:nowrap;    /* できるだけ1行で */
}

/* PCで横並び */
@media (min-width: 960px){
  .type-list{
    display:flex;
    flex-wrap:wrap;           /* 収まりきらない場合は折り返し */
    gap:10px 16px;            /* アイテム間の余白 */
    justify-content:center;
    list-style:none;          /* 箇条書きの点は非表示に */
    padding-left:0;
    margin:8px auto 0;
  }
  .type-list li{
    display:inline-flex;
    align-items:center;
    white-space:nowrap;       /* 行内で改行させない（見出し感） */
    padding:6px 12px;
    border:1px solid #ddd;    /* 視認性UP（不要なら削除） */
    border-radius:999px;      /* ピル型 */
    background:#fff;
  }
}

/*a.btn_a {
  display: block;
  text-align: center;
  vertical-align: middle;
  text-decoration: none;
  width: 500px;
  margin: auto;
  padding: 1rem 4rem;
  font-weight: bold;
  border: 2px solid #27acd9;
  color: #27acd9;
  border-radius: 100vh;
  transition: 0.5s;
}
a.btn_a:hover {
  color: #fff;
  background: #27acd9;
}*/

a.btn_a {
  display: block;
  text-align: center;
  vertical-align: middle;
  text-decoration: none;
  width: 600px;
  margin: auto;
  padding: 1rem 4rem;
  font-weight: bold;	
  border: 2px solid #f2952d;
  background: #f2952d;   /* ← 通常時は背景色あり */
  color: #fff;           /* ← 通常時は文字を白 */
  border-radius: 100vh;
  transition: 0.5s;
	font-size: 1.2em;
}

a.btn_a:hover {
  color: #f2952d;        /* ← ホバー時は文字を青 */
  background: #fff;      /* ← ホバー時は背景を白 */
}

/* スマホ表示用 */
@media screen and (max-width: 768px) {
  a.btn_a {
    width: 100%;
    max-width: 100%;   /* 念のためはみ出し防止 */
    box-sizing: border-box; /* paddingを含めて100%計算 */
	  font-size: 1em;
	  padding: 1rem 1rem;
  }
}

a.btn_b {
  display: block;
  text-align: center;
  vertical-align: middle;
  text-decoration: none;
  width: 300px;
  margin: auto;
  padding: 1rem 4rem;
  font-weight: bold;	
  border: 2px solid #ffa43b;
  background: #ffa43b;   /* ← 通常時は背景色あり */
  color: #fff;           /* ← 通常時は文字を白 */
  border-radius: 100vh;
  transition: 0.5s;
}

a.btn_b:hover {
  color: #ffa43b;        /* ← ホバー時は文字を青 */
  background: #fff;      /* ← ホバー時は背景を白 */
}

/* スマホ表示用 */
@media screen and (max-width: 768px) {
  a.btn_b {
    width: 100%;
    max-width: 100%;   /* 念のためはみ出し防止 */
    box-sizing: border-box; /* paddingを含めて100%計算 */
  }
}

a.btn_c {
  display: block;
  text-align: center;
  vertical-align: middle;
  text-decoration: none;
  width: 200px;
  margin: auto;
  padding: 1rem 4rem;
  font-weight: bold;	
  border: 2px solid #ffa43b;
  background: #ffa43b;   /* ← 通常時は背景色あり */
  color: #fff;           /* ← 通常時は文字を白 */
  border-radius: 100vh;
  transition: 0.5s;
}

a.btn_c:hover {
  color: #ffa43b;        /* ← ホバー時は文字を青 */
  background: #fff;      /* ← ホバー時は背景を白 */
}

/* スマホ表示用 */
@media screen and (max-width: 768px) {
  a.btn_c {
    width: 90%;
    max-width: 100%;   /* 念のためはみ出し防止 */
    box-sizing: border-box; /* paddingを含めて100%計算 */
  }
}

/* ====== 横スクロールのCSS ====== */
.horizontal-scroll {
  width: 930px;
  overflow-x: auto;              /* ← フリックでスクロール可 */
  overflow-y: hidden;
  white-space: nowrap;
  -webkit-overflow-scrolling: touch; /* iOSで慣性スクロール */
  background: #fff;
}

/* 中身を横並び */
.scroll-container {
  display: inline-flex;
  animation: scroll 90s linear infinite; /* 自動で流れる */
}

.horizontal-scroll img {
  flex: 0 0 auto;
  margin-left: 10px;
  height: auto;
  max-height: 200px; /* 高さ調整は任意 */
}

/* アニメーション定義 */
@keyframes scroll {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-100%);
  }
}

/* スマホ時は横幅100%で収める */
@media screen and (max-width: 768px) {
  .horizontal-scroll {
    width: 100%;
  }
}

/*ここまで*/


.setumei_title {
  margin: 30px 0 20px 0;
  font-size: 1.6em;
  font-weight: bold;
  background-color: #629f41;
  color: #fff;
  padding: 2px;
  padding-left: 10px;
  margin-bottom: 20px;
  border-left: 15px solid #3f6b27;
}
/* スマホ表示 (768px以下) */
@media screen and (max-width: 768px) {
  .setumei_title {
    font-size: 1.2em; /* 基本フォントサイズの90% */
	  padding: 10px;
  }
}

/*PC全幅表示*/
@media (min-width: 1140px) {
  .full-width {
    width: 99.3vw;
    margin-left: calc(-50vw + 50%);
  }
  .full-img {
    width: 100vw;
    height: auto;
    margin-left: calc(-50vw + 50%);
  }
}
.item {
  background-color: #f1f1f1;
  padding: 16px;
  text-align: center;
  font-size: 0.8em;
}
.item a {
  text-decoration: none;
  color: #191919;
}

/*画像の上に画像を乗せる*/
.image-container {
    position: relative; /* 親要素を相対位置に設定 */
    display: inline-block; /* インラインブロックでサイズを調整 */
}

.main-image {
    display: block; /* ブロック要素として表示 */
}

/*ヘッダー下のMEWマーク*/
.new-mark {
    position: absolute; /* 絶対位置に設定 */
    top: 0px; /* 上からの距離 */
    right: 0px; /* 右からの距離 */
    width: 40px; /* NEWマークの幅 */
    height: auto; /* 高さは自動調整 */
}

/*ヘッダー下メニュー*/
ul.header-dropmenu {
  list-style: none;
  width: 100%;
  height: 40px;
  margin: 0 auto;
  padding: 8px 0 0 0;
  display: table;
  table-layout: fixed;
}
ul.header-dropmenu > li {
  position: relative;
  display: table-cell;
  vertical-align: middle;
  border: 1px solid #527250;
  background: #527250; /* 背景色*/
  font-size: 0.85em;
}
ul.header-dropmenu li a {
  display: block;
  text-align: center;
  line-height: 40px;
  font-weight: bold;
  text-decoration: none;
  font-size: 14px;
  color: #fff;
}
ul.header-dropmenu li {
  color: #fff;
  font-weight: bold;
  text-align: center;
}
ul.header-dropmenu li ul {
  visibility: hidden;
  width: 100%;
  list-style: none;
  position: absolute;
  top: 100%;
  left: -1px;
  margin: 0;
  padding: 0;
  border: 1px solid #222; /* マウスオーバー時の枠線 */
  border-top: none;
}
ul.header-dropmenu li:hover ul {
  visibility: visible;
  color: #527250;
}
ul.header-dropmenu li ul li {
  background: #527250;
  transition: all .2s ease;
}
ul.header-dropmenu > li a:hover {
  background: #fff;
  border-bottom: none;
  color: #527250;
}
ul.header-dropmenu li:hover ul li:hover {
  background: #678e65;
  color: #527250;
}

/*table#table-01 {
  width: 100%;
  border: 1px #E3E3E3 solid;
  border-collapse: collapse;
  border-spacing: 0;
  margin-left: 7px;
}
table#table-01 th {
  padding: 5px;
  border: #E3E3E3 solid;
  border-width: 0 0 1px 1px;
  background: #F5F5F5;
  font-weight: bold;
  line-height: 120%;
  text-align: left;
}
table#table-01 td {
  padding: 5px;
  border: 1px #E3E3E3 solid;
  line-height: 140%;
  text-align: left;
}*/

.gridcontents {
  display: grid;                          /* gridレイアウトを有効化 */
  grid-template-columns: repeat(6, 1fr);  /* 幅を均等に6分割（6カラム構成） */
  grid-gap: 10px;                         /* グリッド間の余白を10pxに設定 */ 
  margin: 0 auto;                         /* 左右中央寄せ */
}

/* スマホ表示：横スクロールに変更 */
@media (max-width: 767px) {
  .gridcontents {
    display: flex;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    gap: 10px;
    width: 100%;
    padding: 10px 0;
    scroll-behavior: smooth;
  }

  .gridcontents .item {
    flex: 0 0 auto;
    width: 160px;   /* 横に並ぶ幅 */
    text-align: center;
  }

  .gridcontents img {
    max-width: 100%;
    height: auto;
  }
}


.gridcontents6 {
  display: grid;
  grid-template-columns: repeat(6, 1fr); /* PCでは6列 */
  gap: 10px; /* 要素間の余白 */
}

/* スマホ対応（768px以下なら2列） */
@media screen and (max-width: 768px) {
  .gridcontents6 {
    grid-template-columns: repeat(2, 1fr); /* SPでは2列 */
  }
}

.gridcontents5 {
  display: grid;
  grid-template-columns: repeat(5, 1fr); /* PCは5列 */
  gap: 20px; /* 各アイテムの間隔 */
  text-align: center;
  margin: 20px auto;
  max-width: 1200px; /* 横幅を制御したい場合 */
}

.gridcontents5 .item img {
  max-width: 100%;  /* 画像を枠に合わせて縮小 */
  height: auto;
}

.gridcontents5 .item strong {
  display: block;
  margin-bottom: 5px;
  font-size: 14px;
  color: #333;

  /* 折り返さず必ず1行表示 */
  white-space: nowrap;
}

.gridcontents5 .item {
  font-size: 14px;
  color: #333;
  line-height: 1.5;
}

/* スマホ時は2列に変更 */
@media screen and (max-width: 768px) {
  .gridcontents5 {
    grid-template-columns: repeat(2, 1fr);
  }
}

.gridcontents4 {
  display: grid;
  grid-template-columns: repeat(4, 1fr); /* PCは4列 */
  gap: 20px;
  text-align: center;
  margin: 20px auto;
  max-width: 1200px;
}

.gridcontents4 .item img {
  max-width: 100%;
  height: auto;
}

.gridcontents4 .item p {
  margin-top: 6px;
  font-size: 14px;
  color: #333;
  line-height: 1.5;
}

/* スマホは2列 */
@media screen and (max-width: 768px) {
  .gridcontents4 {
    grid-template-columns: repeat(2, 1fr);
  }
}



#PageBuyBtn {
  position: fixed;
  bottom: 110px;
  right: 10px;
}
#PageBuyBtn a {
  display: block; /*配置の調整*/
  text-decoration: none; /*文字の下線を消す*/
  color: #fff; /*文字の色*/
		font-size: 0.8em;
  background: #527250; /*ボタンの背景色*/
  text-align: center; /*文字を中央に配置*/
  border-radius: 5%; /*ボタンの角を少し丸くする*/
  outline: none; /*クリックしたときの黒い枠を消す*/
  width: 100px; /*ボタンの幅*/
  height: 70px; /*ボタンの高さ*/
  padding: 24px 0; /*文字の配置場所の調整*/
}

/* ページのトップへ　パソコン・スマホ共通のCSS */
#PageTopBtn {
  position: fixed; /*ボタンの配置場所を固定*/
  bottom: -10px; /*下からのボタンの配置場所を指定*/
  right: 10px; /*右からのボタンの配置場所を指定*/
}
#PageTopBtn a {
  display: block; /*配置の調整*/
  text-decoration: none; /*文字の下線を消す*/
  color: #fff; /*文字の色*/
  background: #00bfff; /*ボタンの背景色*/
  text-align: center; /*文字を中央に配置*/
  border-radius: 5%; /*ボタンの角を少し丸くする*/
  outline: none; /*クリックしたときの黒い枠を消す*/
}
#PageTopBtn a:hover {
  text-decoration: none;
  background: #87cefa; /*マウスオーバー時の背景色*/
}
/* パソコンで表示する場合のCSS */
@media (min-width: 768px) {
  #PageTopBtn {
    font-size: 40px; /*文字のサイズ*/
  }
  #PageTopBtn a {
    width: 100px; /*ボタンの幅*/
    height: 70px; /*ボタンの高さ*/
    padding: 24px 0; /*文字の配置場所の調整*/
  }
}
/* スマホで表示する場合のCSS */
@media (max-width: 767px) {
  #PageTopBtn {
    font-size: 16px;
  }
  #PageTopBtn a {
    width: 50px;
    height: 60px;
    padding: 1px 0;
  }
}

/* 白背景用の外枠 */
.grid-box-white {
  background-color: #ffffff;   /* ブロック全体を白で塗る */
  padding: 0;                  /* 余白なし */
  margin: 0 auto;
}

/* PCは3列 */
.gridcontents3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 15px;                   /* アイテム間の隙間 */
  text-align: center;
  background-color: #ffffff;   /* 隙間部分も白 */
}

/* アイテム本体も白背景にして徹底 */
.gridcontents3 .item {
  background-color: #ffffff;
}

.gridcontents3 .item img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
}

/* スマホは2列 */
@media screen and (max-width: 768px) {
  .gridcontents3 {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ========== Base (PC/タブレット) ========== */
#table-01 {
  width: 100%;
  border-collapse: collapse;
  font-family: "メイリオ", Meiryo, sans-serif;
}
#table-01 th,
#table-01 td {
  border: 1px solid #ccc;
  padding: 10px 12px;
  text-align: center;
  vertical-align: middle;
  line-height: 1.5;
}

/* ★ 見出しセルの背景色をグレーに */
#table-01 thead th,
#table-01 tbody th {
  background: #f0f2f6; /* ←グレー系 */
  font-weight: 700;
  color: #0b3a42;
}

/* 交互色（任意） */
#table-01 tbody tr:nth-child(odd) td {
  background: #fcfdff;
}

/* ========== Smartphone (カード型 2列) ========== */
@media screen and (max-width: 640px) {
  #table-01 {
    border: 0;
  }
  #table-01 thead {
    display: none; /* 見出しは非表示 */
  }
  #table-01 tbody tr {
    display: grid;
    grid-template-columns: repeat(1, 1fr); /* 2列にする */
    gap: 8px;
    margin: 12px 0;
    border: 1px solid #e6e9ef;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(0,0,0,.06);
    background: #fff;
    padding: 8px;
  }

  /* 各セル */
  #table-01 tbody td {
    display: flex;
    flex-direction: column; /* ラベル→値を縦積みに */
    gap: 4px;
    border: 0;
    padding: 10px;
    background: #fff;
    border-radius: 6px;
  }
  #table-01 tbody td::before {
    content: attr(data-label);
    font-weight: 700;
    font-size: 0.85em;
    color: #0b3a42;
  }

  /* th をブロックのタイトル風に 1列占有 */
  #table-01 tbody th {
    grid-column: 1 / -1; /* 横幅100%使う */
    display: block;
    background: #f0f2f6;
    font-weight: 700;
    color: #0b3a42;
    padding: 12px 14px;
    border-bottom: 1px solid #ddd;
    border-radius: 8px 8px 0 0;
  }
}

/* ========== Base (PC/タブレット) ========== */
#table-02 {
  width: 100%;
  border-collapse: collapse;
  font-family: "メイリオ", Meiryo, sans-serif;
}
#table-02 th,
#table-02 td {
  border: 1px solid #ccc;
  padding: 10px 12px;
  text-align: center;
  vertical-align: middle;
  line-height: 1.5;
}

/* ★ 見出しセルの背景色をグレーに */
#table-02 thead th,
#table-02 tbody th {
  background: #f0f2f6; /* ←グレー系 */
  font-weight: 700;
  color: #0b3a42;
}

/* 交互色（任意） */
#table-02 tbody tr:nth-child(odd) td {
  background: #fcfdff;
}

/* ========== Smartphone (カード型 1列) ========== */
@media screen and (max-width: 640px) {
  #table-02 {
    border: 0;
  }
  #table-02 thead {
    display: none; /* 見出しは非表示 */
  }
  #table-02 tbody tr {
    display: block;
    margin: 12px 0;
    border: 1px solid #e6e9ef;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(0,0,0,.06);
    background: #fff;
    padding: 8px;
  }

  /* 各セル（1列表示） */
  #table-02 tbody td {
    display: flex;
    flex-direction: column; /* ラベル→値を縦積みに */
    gap: 4px;
    border: 0;
    padding: 10px;
    background: #fff;
    border-radius: 6px;
  }
  #table-02 tbody td::before {
    content: attr(data-label);
    font-weight: 700;
    font-size: 0.85em;
    color: #0b3a42;
  }

  /* th をブロックのタイトル風に */
  #table-02 tbody th {
    display: block;
    background: #f0f2f6;
    font-weight: 700;
    color: #0b3a42;
    padding: 12px 14px;
    border-bottom: 1px solid #ddd;
    border-radius: 8px 8px 0 0;
    margin-bottom: 6px;
  }
}

/* PC用は特に指定不要（tableの幅そのまま） */
#table-03 {
  width: 100%;
  border-collapse: collapse;
  font-family: "メイリオ", Meiryo, sans-serif;
	font-size: 0.8em;
}
#table-03 th,
#table-03 td {
  border: 1px solid #ccc;
  padding: 10px 12px;
  text-align: left;
  vertical-align: middle;
  line-height: 1.4;
	font-size: 0.8em;
}

/* ★ 見出しセルの背景色をグレーに */
#table-03 thead th,
#table-03 tbody th {
  background: #f0f2f6; /* ←グレー系 */
  font-weight: 700;
  color: #0b3a42;
}

/* 交互色（任意） */
#table-03 tbody tr:nth-child(odd) td {
  background: #fcfdff;
}
/* スマホ用（768px以下を想定） */
@media screen and (max-width: 768px) {
  #table-03 {
    width: 100% !important;
    table-layout: fixed;   /* 幅を均等に分割する */
    word-wrap: break-word; /* セル内で折り返す */
  }
  #table-03 th, 
  #table-03 td {
    display: block;       /* 縦並びにする場合 */
    width: 100% !important;
    box-sizing: border-box;
  }
}


/* PC/タブレット */
#table-04 {
  width: 100%;
  border-collapse: collapse;
  font-family: "メイリオ", Meiryo, sans-serif;
  font-size: 0.8em;
}
#table-04 th,
#table-04 td {
  border: 1px solid #ccc;
  padding: 8px 10px;
  text-align: center;
  vertical-align: middle;
  line-height: 1.4;
}
#table-04 th {
  background: #f0f2f6;
  font-weight: 700;
  color: #0b3a42;
}

/* SP: テーブルだけ横スクロール */
@media screen and (max-width: 640px) {
  .table-scroll {
    width: 100%;
    overflow-x: auto;             /* 横スクロール可能 */
    -webkit-overflow-scrolling: touch; /* iOSで慣性スクロール */
  }
  #table-04 {
    width: 900px;  /* テーブルは広めの固定幅を確保 */
    font-size: 0.9em;
  }
}




/* 共通：画像の縮小に追従 */
a.tabbtn img,
img.resp {
  max-width: 100%;
  height: auto;
  display: block;
}

/* タブ画像：PC/タブレット */
a.tabbtn {
  display: inline-block;
  vertical-align: top;
  margin: 0 8px 8px 0; /* 右と下に少し余白 */
}
a.tabbtn img {
  width: 180px; /* PC時の目安サイズ（画像実寸に合わせて調整可） */
}

/* スマホ：3カラム→2カラム→1カラムの順に可変 */
@media (max-width: 640px) {
  a.tabbtn {
    width: 32.5%;
    margin: 0 1% 8px 0;
  }
  a.tabbtn:nth-child(3n) { margin-right: 0; } /* 3列目の右余白を消す */
  a.tabbtn img { width: 100%; }
}

@media (max-width: 420px) {
  a.tabbtn { width: 49%; margin: 0 2% 8px 0; }
  a.tabbtn:nth-child(2n) { margin-right: 0; } /* 2列目の右余白を消す */
}

@media (max-width: 340px) {
  a.tabbtn { width: 100%; margin: 0 0 8px 0; }
}

/* ラッパー */
.okuyuki-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr)); /* PC: 3列 */
  gap: 12px;
}

/* 画像を枠いっぱいに */
.okuyuki-grid a{ display:block; }
.okuyuki-grid img{
  width:100%;
  height:auto;
  display:block;
}

/* 既存の <br> は無効化（残しても崩さない） */
.okuyuki-grid br{ display:none; }

/* SP: 2列に可変 */
@media (max-width: 640px){
  .okuyuki-grid{
    grid-template-columns: repeat(2, minmax(0,1fr));
  }
}

/* 右上クローズリンクの“文字”を強調表示（PC/SP共通） */
.highslide-container a.highslide-close,
.highslide-container a.closebutton,
.highslide-container .highslide-controls .highslide-close {
  position: absolute;
  top: 10px; right: 10px;
  z-index: 9999;

  display: inline-block;
  padding: 8px 14px;
  border-radius: 9999px;

  font-weight: 800;
  font-size: 18px;               /* PC基本サイズ */
  line-height: 1.1;
  color: #e6002f;                /* 濃い赤 */
  background: #ffffff;           /* 白背景で視認性UP */
  border: 2px solid #e6002f;
  text-decoration: none;

  /* 旧パッチの無効化（SPで隠していた場合） */
  text-indent: 0 !important;
  overflow: visible;
  background-image: none !important;
}
.highslide-container a.highslide-close::after,
.highslide-container a.closebutton::after,
.highslide-container .highslide-controls .highslide-close::after {
  content: none !important;      /* 以前の「×」疑似要素を無効化 */
}

/* ホバー/フォーカス時のアクセント */
.highslide-container a.highslide-close:hover,
.highslide-container a.highslide-close:focus,
.highslide-container a.closebutton:hover,
.highslide-container a.closebutton:focus {
  color: #fff;
  background: #e6002f;
  outline: none;
  box-shadow: 0 0 0 3px rgba(230,0,47,0.2);
}

/* スマホはさらに大きく＆押しやすく */
@media (max-width: 640px) {
  .highslide-container a.highslide-close,
  .highslide-container a.closebutton,
  .highslide-container .highslide-controls .highslide-close {
    font-size: 20px;             /* SPで大きめ */
    padding: 10px 16px;
    top: 8px; right: 8px;
  }
}
/* 2列カードレイアウト（PC/SP共通で2列） */
.oc-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  list-style: none;
  margin: 0;
  padding: 0;
}

/* カード */
.oc-list > li {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid #eee;
  /*border-radius: 12px;*/
  overflow: hidden;
}

/* 画像 */
.oc-list figure {
  margin: 0;
}
.oc-list figure img {
  display: block;
  width: 100%;
  height: auto;       /* 元画像の比率維持 */
  object-fit: cover;  /* 万一サイズ指定時も見た目を整える保険 */
}

/* テキスト */
.oc-list p {
  margin: 12px 14px 16px;
  line-height: 1.7;
  font-size: 14px;
}
.oc-list p b {
  display: inline-block;
  font-size: 16px;
  margin-bottom: 6px;
}

/* 横幅が広い環境で読みやすく（任意） */
@media (min-width: 1024px) {
  .oc-list {
    max-width: 960px;
    margin: 0 auto;
    gap: 20px;
  }
  .oc-list p { font-size: 15px; }
  .oc-list p b { font-size: 17px; }
}

/* 角丸やシャドウを少し効かせる（任意・お好みで） */
.oc-list > li {
  box-shadow: 0 2px 10px rgba(0,0,0,.04);
}

/* 視覚的にキビキビ（任意） */
.oc-list > li,
.oc-list img {
  transition: transform .2s ease, box-shadow .2s ease;
}
.oc-list > li:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(0,0,0,.08);
}

/*スマホで表組はみだしは横スクロール*/
.no-gap {
  overflow-x: auto;      /* 横スクロールを有効化 */
  -webkit-overflow-scrolling: touch; /* iOS の慣性スクロール対応 */
  white-space: nowrap;   /* 子要素を改行させない */
}

.no-gap img {
  display: inline-block; /* 横並びを維持 */
  vertical-align: middle; /* 画像の縦位置を揃える */
}
/*ここまで*/

/* PCでは元画像の大きさのまま */
#addToCartButton {
  max-width: none;
  height: auto;
}

/* スマホ用（768px以下を想定） */
@media screen and (max-width: 768px) {
  #addToCartButton {
    width: 100% !important;
    height: auto;
  }
}

.scroll-table {
  width: 100%;
  overflow-x: auto;                  /* 横スクロール */
  -webkit-overflow-scrolling: touch; /* iOSでスムーズ */
}

.scroll-table table {
  border-collapse: collapse;         /* 隙間ゼロ */
  margin: 0 auto;
  white-space: nowrap;               /* 折り返しなし */
}

.scroll-table td {
  padding: 0;
  margin: 0;
}

.scroll-table img {
  display: block;                    /* 画像下の余白カット */
}_

#addToCartButton {
  border: none;          /* 枠線を消す */
  background: none;      /* 背景を消す */
  padding: 0;            /* 余白を消す */
  cursor: pointer;       /* カーソルをポインタに */
}
#addToCartButton img {
  display: block;        /* 画像の周囲の隙間を消す */
}

/* ===== Product Listing: PC 4列 / SP 2列 固定 ===== */

/* 親をグリッド化 */
#productListing {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important; /* PC: 4列 */
  gap: 20px !important;
  box-sizing: border-box;
}

/* 中間ラッパー(div class="")を“透明化”して孫要素を直結 */
#productListing > div,
#productListing > div > div,
#productListing > div > div > div,
#productListing > div > div > div > div {
  display: contents !important;
}

/* 子カードをリセット（inline width/floatを完全無効化） */
#productListing .centerBoxContentsProducts {
  all: unset !important;             /* 既存の幅/float/マージン等を丸ごと解除 */
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  border: 1px solid #ddd !important;
  border-radius: 8px !important;
  padding: 12px !important;
  background: #fff !important;
  box-sizing: border-box !important;
}

/* 画像・テキストの体裁 */
#productListing .listingProductImage {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: cover !important;
  border-radius: 6px !important;
  margin-bottom: 10px !important;
}

#productListing .itemTitle {
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  text-align: center !important;
  line-height: 1.4 !important;
  margin: 6px 0 8px !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

#productListing .list-price {
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  color: #c00 !important;
  margin-top: auto !important;
  margin-bottom: 10px !important;
}

/*ボタン*/
#productListing .list-more {
  display: block !important;
  width: 100% !important;
  text-align: center !important;
  padding: 5px !important;
  border-radius: 6px !important;
  background: #f2952d !important;
  color: #fff !important;
  text-decoration: none !important;
  font-weight: 700 !important;
}

/* ===== レスポンシブ ===== */
/* スマホ: 2列固定 */
@media (max-width: 768px) {
  #productListing {
    grid-template-columns: repeat(2, 1fr) !important; /* SP: 2列 */
  }
}


/* スマホ専用フッターボタン */
.sp-order-btn {
  display: none; /* PCでは非表示 */
}
@media screen and (max-width: 768px) {
  .sp-order-btn {
    display: block;
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    z-index: 9999;
    background: #e3540e;
    text-align: center;
  }

  .sp-order-btn a {
    display: block;
    padding: 10px;
    color: #fff;
    font-size: 16px;
    font-weight: bold;
    text-decoration: none;
  }

  .sp-order-btn a:hover {
    background: #ff6600;
  }
}

/*ezページの常時表示のサイズ選択リンク*/
#size-fixed {
  display: none;
}

@media screen and (min-width: 769px) {
  #size-fixed {
    display: block;
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background: #e3540e;
    text-align: center;
    z-index: 9999;
  }

  #size-fixed a {
    display: inline-block;
    padding: 10px 80px; /* 大きめボタン */
    font-size: 22px;
    font-weight: bold;
    color: #fff;
    text-decoration: none;
    background: #e3540e;
    border-radius: 4px;
  }

  #size-fixed a:hover {
    background: #ff6600;
  }

  body {
    padding-bottom: 80px;
  }
}

.video-wrap {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%; /* 16:9の比率を確保 */
  height: 0;
}

.video-wrap iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.gazo {
  max-width: 100%;
  height: auto;
}

/* 縦並び左メニュー */
#pickup-side {
  width: 100%;
}

#pickup-side .item {
  margin-bottom: 10px;
  text-align: center;
}

#pickup-side img {
  width: 100%;       /* 親要素の幅に合わせて伸縮 */
  height: auto;      /* アスペクト比維持 */
  display: block;
  margin: 0 auto;
  max-width: 200px;  /* 上限（必要に応じて調整） */
}


/*縦並び左バナー*/

.left-banners {
  font-size: 0; /* inline-block の隙間消し */
}
.left-banners a {
  display: inline-block;
  margin: 0;
  padding: 0;
}
.left-banners img {
  display: block;
}

@media screen and (max-width: 768px) {
	legend {
		padding: 4px 0 4px 0;
		font-size: 1.2em;
	}
}

/* リニューアル告知：CSS */
.renewal-notice {
  --rn-bg: #f7faf9;
  --rn-accent: #0a7f72;
  --rn-accent-2: #06695f;
  --rn-text: #1b1f23;
  --rn-muted: #5b6b6b;
  --rn-border: #e1e7e5;
  --rn-radius: 14px;
  --rn-gap: clamp(12px, 2vmax, 20px);

  background: var(--rn-bg);
  border: 1px solid var(--rn-border);
  border-radius: var(--rn-radius);
  padding: clamp(16px, 3vw, 28px);
  margin: 1.5rem 0;
}

.rn-inner {
  max-width: 980px;
  margin: 0 auto;
}

.rn-badge {
  display: inline-block;
  margin: 0 0 10px 0;
  padding: 6px 12px;
  font-size: 0.9rem;
  line-height: 1;
  color: #fff;
  background: linear-gradient(90deg, var(--rn-accent), var(--rn-accent-2));
  border-radius: 999px;
  box-shadow: 0 2px 6px rgba(10, 127, 114, 0.25);
}
.rn-badge strong { font-weight: 800; }

/* タイトル＋リード */
.rn-title {
  margin: 4px 0 10px 0;
  font-size: clamp(1.2rem, 3.4vw, 1.8rem);
  line-height: 1.35;
  color: var(--rn-text);
  letter-spacing: .02em;
}
.rn-lead {
  margin: 0 0 16px 0;
  color: var(--rn-muted);
  font-size: clamp(0.98rem, 2.6vw, 1.05rem);
  line-height: 1.8;
}

/* 強調ボックス（特典・お願い） */
.rn-box {
  background: #fff;
  border: 1px solid var(--rn-border);
  border-radius: calc(var(--rn-radius) - 2px);
  padding: clamp(14px, 3vw, 20px);
  box-shadow: 0 6px 18px rgba(0,0,0,.04);
  margin-bottom: var(--rn-gap);
}
.rn-point,
.rn-info {
  margin: 0 0 10px 0;
  color: var(--rn-text);
  line-height: 1.8;
}
.rn-point .rn-point-chip {
  display: inline-block;
  font-size: 0.78rem;
  letter-spacing: .08em;
  color: #fff;
  background: var(--rn-accent);
  padding: 3px 8px;
  border-radius: 6px;
  margin-right: 8px;
  vertical-align: middle;
}
.rn-strong { color: var(--rn-accent-2); font-weight: 800; }

/* ボタン＆リンク */
.rn-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 12px;
  margin-top: 12px;
}
.rn-btn {
  display: inline-block;
  text-align: center;
  text-decoration: none;
  padding: 10px 16px;
  border-radius: 10px;
  font-weight: 700;
  border: 1px solid transparent;
  transition: transform .06s ease, box-shadow .2s ease, background .2s ease;
  white-space: nowrap;
}
.rn-btn:active { transform: translateY(1px); }
.rn-btn--primary {
  background: var(--rn-accent);
  color: #fff;
  border-color: var(--rn-accent);
  box-shadow: 0 4px 12px rgba(10,127,114,.25);
}
.rn-btn--primary:hover { background: var(--rn-accent-2); border-color: var(--rn-accent-2); }
.rn-btn--ghost {
  background: #fff;
  color: var(--rn-accent-2);
  border-color: var(--rn-border);
}
.rn-btn--ghost:hover { border-color: var(--rn-accent); color: var(--rn-accent); }
.rn-link {
  align-self: center;
  font-size: 0.95rem;
  color: var(--rn-accent-2);
  text-underline-offset: 2px;
}

/* 箇条書き（改善点） */
.rn-list {
  display: grid;
  gap: 8px;
  padding: 0;
  margin: 0;
  list-style: none;
}
.rn-list li {
  position: relative;
  padding-left: 1.2em;
  color: var(--rn-muted);
  line-height: 1.8;
}
.rn-list li::before {
  content: "▸";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--rn-accent);
}

/* スマホ最適化 */
@media (max-width: 640px) {
  .rn-actions { gap: 8px; }
  .rn-btn { flex: 1 1 auto; }
  .rn-link { flex: 1 1 100%; }
}

/*発行ポイント非表示*/
#otgivepoint {
	display: none;
}