.cf_min {
  font-family: "游明朝", YuMincho, 'Noto Serif JP', "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
}

/* 改行 */
@media (min-width: 1024px) {
  .c_br_sp {
    display: none;
  }
}


.c_br_pc {
  display: none;
}
@media (min-width: 1024px) {
  .c_br_pc {
    display: block;
  }
}


/* ヘッダー */

.c_header {
  position: fixed;
  width: 100%;
  border-bottom: 1px solid #eee;
  background: #FFFCF5;
  margin-top: -75px;
  z-index: 99;
}
@media (min-width: 1024px) {
  .c_header {
    margin-top: -113px;
  }
}
.c_header__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 12px 16px;
}
@media (min-width: 1024px) {
  .c_header__inner {
    justify-content: left;
  }
}


.c_logo img {
  display: block; height: 50px;
}

/* ロゴ内テキスト */
.c_logo_wrap {
  display: flex;
  align-items: center;
  gap: 30px;
  text-decoration: none;
}

.c_logo__text {
  display: none;
  font-size: 14px;
  color: #333;
  white-space: nowrap;
}

/* Hamburger button (SP) */
.c_hamburger {
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 40px;
  height: 40px;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
}
.c_hamburger__bar {
  display: block;
  width: 24px;
  height: 2px;
  background: #111;
  transition: transform .2s ease, opacity .2s ease;
}

/* Nav (SP: ドロップダウン) */
.c_nav {
  position: absolute;
  top: 100%;
  left: 0; right: 0;
  background: #FFFCF5;
  border-top: 1px solid #eee;
  transform-origin: top;
  transform: scaleY(0);
  opacity: 0;
  visibility: hidden;
  transition: transform .18s ease, opacity .18s ease, visibility .18s step-end;
}
.c_nav.is-open {
  transform: scaleY(1);
  opacity: 1;
  visibility: visible;
  transition: transform .18s ease, opacity .18s ease, visibility 0s;
}
.c_nav__list {
  list-style: none;
  margin: 0;
  padding: 8px 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.c_nav__link {
  display: block;
  padding: 12px;
  text-decoration: none;
  color: #111;
}
.c_nav__link:hover { background: #f7f7f7; }

/* PC: 1024px〜 */
@media (min-width: 1024px) {
  .c_header__inner {
    padding: 16px 24px;
  }
  .c_logo img {
    height: 80px;
  }
  .c_logo__text {
    display: inline-block;
  }
  .c_hamburger { display: none; }

  .c_nav {
    position: static;
    transform: none;
    opacity: 1;
    visibility: visible;
    border-top: 0;
    background: transparent;
  }
  .c_nav__list {
    flex-direction: row;
    gap: 24px;
    padding: 0;
  }
  .c_nav__link {
    padding: 8px 0;
  }
  .c_nav__link:hover { background: transparent; text-decoration: underline; }
}

/* ハンバーガーのアニメ */
.c_hamburger.is-active .c_hamburger__bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.c_hamburger.is-active .c_hamburger__bar:nth-child(2) { opacity: 0; }
.c_hamburger.is-active .c_hamburger__bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }




/* メインセクション */
.c_main_section {
  background-image: url(../img/rank/bg-img-sp.png);
  background-repeat: no-repeat;
  background-size: cover;
  margin-top: 75px;
}
@media print, screen and (min-width: 1024px) {
  .c_main_section {
    background-image: url(../img/rank/bg-img.png);
    background-size: 100%;
    margin-top: 113px;
  }
}

.c_section_inner {
  max-width: 470px;
  margin: 0 auto;
  padding: 60px 15px;
}
@media print, screen and (min-width: 1024px) {
  .c_section_inner {
    max-width: 1000px;
    margin: 0 auto;
    padding: 80px 0;
  }
}

.c_title_wrap {
  text-align: center;
}

.c_title_img_wrap {
    display: inline-block;
    width: 120px;
}
@media print, screen and (min-width: 1024px) {
  .c_title_img_wrap {
      display: inline-block;
      width: 180px;
  }
}




/* タイトル文字装飾 A */
.c_title_sub__a{
  font-size: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding-top: 20px;
  letter-spacing: 1px;
}
@media (min-width: 1024px){
  .c_title_sub__a {
    font-size: 24px;
    gap: 20px;
  }
}


.c_title_sub__a::before,
.c_title_sub__a::after{
  content: "";
  width: 50px;
  height: 1px;
  background: currentColor;
  color: #AB822D;
}
.c_title_sub__a span{ display: inline-block; padding: 0 .2em; }
@media (min-width: 1024px){
  .c_title_sub__a::before,
  .c_title_sub__a::after {
    width: 150px;
  }
}




/* タイトル文字装飾 B */
.c_title_sub__b{
  font-size: 32px;
  position: relative;
  isolation: isolate;
  line-height: 1.2;
  letter-spacing: 2px;
  padding: .3em .4em;
}
@media (min-width: 1024px){
  .c_title_sub__b{
    font-size: 46px;
  }
}


.c_title_sub__b::after{
  content: "";
  position: absolute;
  inset: 50% auto auto 50%;
  transform: translate(-50%, -50%);
  width: min(90%, 520px);        /* 画像の幅（必要に応じて調整） */
  height: 1.4em;                 /* テキスト高さより少し大きく */
  background-image: url(../img/rank/txt-rank.png);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  z-index: -1;
  pointer-events: none;
}
@media (min-width: 1024px){
  .c_title_sub__b::after{
    width: min(85%, 640px);
    height: 1.8em;
  }
}
.c_title_sub__b span{
  position: relative;
  z-index: 1;
}







/* タイトル文字装飾 C */
.c_title_sub__c{
  font-size: 14px;
  position: relative;
  display: inline-block;
  padding: 0 45px;
  margin-top: 20px;
  line-height: 1.6;
}
@media (min-width: 1024px){
  .c_title_sub__c{
    font-size: 18px;
    padding: 0 40px;
    margin-top: 30px;
  }
}


.c_title_sub__c::before,
.c_title_sub__c::after{
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 20%;
  height: 100%;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  pointer-events: none;
}
.c_title_sub__c::before{
  left: -20px;
  background-image: url(../img/rank/txt-left.png);
}
.c_title_sub__c::after{
  right: -20px;
  background-image: url(../img/rank/txt-right.png);
}
@media (min-width: 1024px){
  .c_title_sub__c::before,
  .c_title_sub__c::after{
    width: 10%;
    height: 120%;
  }
}





/* タブ ボタン部分 */
.c_tabs {
  display: flex;
  justify-content: center;
  margin-top: 60px;
  gap: 10px;
}
@media (min-width: 1024px){
  .c_tabs {
    gap: 15px;
  }
}


.c_tab_btn {
  width: 50%;
  padding: 15px 20px;
  cursor: pointer;
}
@media (min-width: 1024px){
  .c_tab_btn {
    padding: 15px 20px;
    font-size: 18px;
  }
}
/* .c_tab_btn.is-active {
  background: #333;
  color: #fff;
} */
.c_tab_btn_left {
  background-color: #CD9844;
  color: #fff;
}
.c_tab_btn_right {
  background-color: #BF0000;
  color: #fff;
}




/* タブ コンテンツ部分 */

/* コンテンツ切替 */
.c_tab_content { display: none; }
.c_tab_content.is-active { display: block; }

/* タブA 上ボーダー */
#tab-a {
  border-top: 5px solid #CD9844;
  border-bottom: 5px solid #CD9844;
}
/* タブB 上ボーダー */
#tab-b {
  border-top: 5px solid #BF0000;
  border-bottom: 5px solid #BF0000;
}

/* 商品リスト */
.c_product_list {
  display: flex;
  flex-direction: column;
  background-color: #fff;
}

/* 商品アイテム */
.c_product_item {
  display: flex;
  flex-direction: column;
  padding: 30px 0px;
  margin: 0 20px;
}
@media (min-width: 1024px) {
  .c_product_item {
    flex-direction: row;
    align-items: flex-start;
    gap: 40px;
    padding: 50px 0;
    margin: 0 50px;
  }
}


/* 中間上下ボーダー（ダッシュ線：長さ・間隔・太さ・色を調整可能） */
.c_border_tb{
  position: relative;
}

/* 上下のダッシュ線 */
.c_border_tb::before,
.c_border_tb::after{
  --dash: 5px;
  --gap:  5px;
  --stroke: 2px;
  --color: #CD9844;
  --inset-x: 0;

  content: "";
  position: absolute;
  left: var(--inset-x);
  right: var(--inset-x);
  height: var(--stroke);

  /* 横方向に「線→空白」を繰り返す背景 */
  background-image: linear-gradient(
    to right,
    var(--color) 0,
    var(--color) var(--dash),
    transparent var(--dash),
    transparent calc(var(--dash) + var(--gap))
  );
  background-size: calc(var(--dash) + var(--gap)) var(--stroke);
  background-repeat: repeat-x;

  pointer-events: none;
}

/* 上：境界の中心に来るよう半分だけ外側にずらす */
.c_border_tb::before{
  top: calc(0px - var(--stroke) / 2);
}

/* 下：同様に下側へ */
.c_border_tb::after{
  bottom: calc(0px - var(--stroke) / 2);
}

/* 例：PCで間隔や線の太さを少し変える */
@media (min-width: 1024px){
  .c_border_tb{
    --dash: 8px;
    --gap:  8px;
    /* --stroke: 2px;  必要なら太さも */
  }
}







/* No1ラベル装飾用 */
.c_rank_label_wrap {
    position: relative;
}
@media (min-width: 1024px) {
  .c_rank_label_wrap {
      width: 40%;
  }
}


.c_rank_label {
    position: absolute;
    width: 80px;
    top: -15px;
    left: -10px;
}
@media (min-width: 1024px) {
  .c_rank_label {
      width: 100px;
      top: -25px;
      left: -25px;
  }
}

@media (min-width: 1024px) {
    .c_product_img_wrap {
        width: 40%;
    }
}

.c_product_img {
  width: 100%;
  /* max-width: 400px; */
  height: auto;
  /* margin: 0 auto; */
  display: block;
}

.c_product_detail {
  position: relative;
  padding-top: 20px;
}
@media (min-width: 1024px) {
  .c_product_detail {
    text-align: left;
    flex: 1;
    padding-top: 0px;
    width: 100%;
  }
}


/* お客様の声 ラベル */
.c_voice_wrap {
    position: absolute;
    top: 10px;
    right: 0px;
    width: 100px;
}
@media (min-width: 1024px) {
  .c_voice_wrap {
    position: absolute;
    top: 0px;
    right: 0px;
    width: 130px;
  }
}


.c_product_name_wrap {
    display: flex;
    align-items: end;
    gap: 20px;
}
.c_rank_wrap {
    width: 15%;
}
@media (min-width: 1024px) {
  .c_rank_wrap {
      width: 12%;
  }
}


.c_product_name {
  font-size: 18px;
}
@media (min-width: 1024px) {
  .c_product_name {
    font-size: 22px;
  }
}


.c_name_gold {
  color: #CD9844;
}
.c_name_silver {
  color: #8F8A87;
}
.c_name_bronze {
  color: #A86821;
}
.c_name_s {
  font-size: 12px;
}
@media (min-width: 1024px) {
  .c_name_s {
    font-size: 15px;
  }
}


.c_product_price_wrap {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 20px;
}
@media (min-width: 1024px) {
  .c_product_price_wrap {
      margin-top: 15px;
  }
}


.c_price_sale_wrap {
    width: 10%;
}
@media (min-width: 1024px) {
  .c_price_sale_wrap {
    width: 7%;
  }
}


.c_product_price {
  font-size: 20px;
  font-weight: bold;
  letter-spacing: 1px;
  color: #BF0000;
}
@media (min-width: 1024px) {
  .c_product_price { font-size: 22px; }
}


.c_price_s {
  font-size: 12px;
  font-weight: normal;
}
@media (min-width: 1024px) {
  .c_price_s {
    font-size: 14px;
  }
}


.c_desc_s {
  font-size: 10px;
}

.c_desc_m {
    display: inline-block;
    font-size: 12px;
    margin: 15px 0;
}
@media (min-width: 1024px) {
  .c_desc_m {
    margin: 10px 0;
  }
}


.c_desc_l {
    font-size: 13px;
}
@media (min-width: 1024px) {
  .c_desc_l {
    font-size: 16px;
  }
}


.c_product_desc {
  margin-top: 10px;
  margin-bottom: 30px;
  line-height: 1.7;
}
@media (min-width: 1024px) {
  .c_product_desc {
    margin-top: 0px;
  }
}


.c_product_buttons button {
  width: 100%;
  display: block;
  text-align: left;
  cursor: pointer;
}

/* ボタン：SPは縦積み（フル幅） */
.c_product_buttons{
  display: flex;
  flex-direction: column;
  gap: 8px;
}
/* PCは横並びに戻す */
@media (min-width: 1024px){
  .c_product_buttons{
    flex-direction: row;
    align-items: center;
  }
}


.c_rakuten_btn {
    display: inline-block;
    width: 100%;
    background-color: #BF0000;
    color: #fff;
    padding: 10px;
    font-size: 10px;
}
@media (min-width: 1024px){
  .c_rakuten_btn {
    font-size: 12px;
    width: 31%;
  }
}


.c_yahoo_btn {
    display: inline-block;
    width: 100%;
    background-color: #FF901A;
    color: #fff;
    padding: 10px;
    font-size: 10px;
}
@media (min-width: 1024px){
  .c_yahoo_btn {
    font-size: 12px;
    width: 32%;
  }
}


.c_amazon_btn {
    display: inline-block;
    width: 100%;
    background-color: #222D3D;
    color: #fff;
    padding: 10px;
    font-size: 10px;
}
@media (min-width: 1024px){
  .c_amazon_btn {
    font-size: 12px;
    width: 32%;
  }
}


/* 矢印用の余白＆基準位置を付与（既存の各ボタンaに追加） */
.c_rakuten_btn,
.c_yahoo_btn,
.c_amazon_btn{
  position: relative;
  padding-right: 40px; /* 矢印ぶんの余白を確保 */
}

/* 右端の矢印（> 相当のシェブロン） */
.c_rakuten_btn::after,
.c_yahoo_btn::after,
.c_amazon_btn::after{
  content: "";
  position: absolute;
  top: 50%;
  right: 14px;                 /* 内側端に寄せる */
  width: 8px;
  height: 8px;
  transform: translateY(-50%) rotate(45deg);
  border-top: 2px solid currentColor;   /* currentColor = 文字色（白） */
  border-right: 2px solid currentColor;
  pointer-events: none;
}

/* PCでは少し大きく、右余白も微調整 */
@media (min-width: 1024px){
  .c_rakuten_btn,
  .c_yahoo_btn,
  .c_amazon_btn{
    padding-right: 0px;
  }
  .c_rakuten_btn::after,
  .c_yahoo_btn::after,
  .c_amazon_btn::after{
    right: 10px;
    width: 9px;
    height: 9px;
    /* border-width: 2px;  // 必要なら太さも調整 */
  }
}


.c_hosoku {
    font-size: 12px;
    margin: 0 20px 30px;
}
@media (min-width: 1024px){
    .c_hosoku {
        font-size: 14px;
        margin: 0 50px 50px;
    }
}



/* 洋風オードブルセクション */

.c_western_section {
  background-color: #FFFCF5;
}

.c_section_tit_wrap {
    font-size: 18px;
    text-align: center;
    width: 270px;
    margin: 0 auto;
}
@media (min-width: 1024px){
    .c_section_tit_wrap {
      font-size: 30px;
      width: 630px;
  }
}


.c_tit_under {
    margin-top: 10px;
}



/* ===== カードレイアウト全体：SP1カラム → PC2カラム ===== */
.c_products{

}
@media (min-width: 1024px){
  .c_products{
    display: flex;
    justify-content: space-between;
  }
}


.c_col_2 {
    flex-direction: column;
    margin: 0;
}
@media (min-width: 1024px){
  .c_col_2 {
    width: 48%;
    gap: 20px;
  }
}

@media (min-width: 1024px){
  .c_col_2_img {
    width: 100%;
  }
}

/* 「新商品」ラベル位置 */
.c_new_label {
  position: absolute;
  width: 80px;
  top: -15px;
  left: -10px;
}
@media (min-width: 1024px) {
    .c_new_label {
        width: 100px;
        top: -20px;
        left: -20px;
    }
}





/* ラインナップセクション */
.c_lineup_section {
  background-color: #FCF1EB;
}


.c_section_tit2_wrap {
    font-size: 18px;
    text-align: center;
    width: 290px;
    margin: 0 auto;
}
@media (min-width: 1024px) {
    .c_section_tit2_wrap {
        font-size: 30px;
        width: 480px;
    }
}


.c_rank_graph_img {
  padding-top: 30px;
}
@media (min-width: 1024px) {
    .c_rank_graph_img {
      padding-bottom: 30px;
    }
}





/* お客様の声 */

/* クリック用ボタンのリセット（既存 .c_voice_wrap に合わせて） */
.c_voice_btn{
  display: inline-block;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}

/* モーダルの基礎 */
.c_modal[aria-hidden="true"]{ display: none; }
.c_modal[aria-hidden="false"]{ display: block; }

.c_modal{
  position: fixed;
  inset: 0;
  z-index: 9999; /* ヘッダーより前面 */
}

/* 背景オーバーレイ（薄暗く） */
.c_modal__overlay{
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.5);
}

/* ダイアログ本体（中央寄せ） */
.c_modal__dialog{
  position: absolute;
  left: 50%; top: 50%;
  transform: translate(-50%, -50%);
  width: min(92vw, 720px);
  max-width: 335px;
  max-height: 90vh;
  overflow: auto;
  background: #FFFCF5;
  color: #462E00;
  padding: 24px 20px 24px;
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
}

/* 左上のバッジ画像 */
.c_modal__badge{
  position: absolute;
  left: 0px;
  top: 0px;
  width: 100px;
  height: auto;
}

/* 右上の閉じるボタン（×） */
.c_modal__close{
  position: absolute;
  right: 5px;
  top: 5px;
  width: 35px;
  height: 35px;
  border: 0; background: transparent; cursor: pointer;
  font-size: 30px;
  line-height: 1; color: #333;
}

/* タイトル → 商品画像 → 説明 → 名前 の順に余白 */
.c_modal__title{
  margin: 20px 0;
  font-size: 18px;
  text-align: center;
}
.c_modal__media{
  margin: 0 auto;
  width: min(88%, 560px);
}
.c_modal__media img{
  width: 100%;
  height: auto;
  display: block;
}

.c_modal__desc{
  margin: 20px;
  font-size: 14px;
  line-height: 1.8;
  text-align: left;
}
.c_modal__name{
  margin: 0 20px 8px;
  font-size: 10px;
  font-weight: bold;
}

@media (min-width: 1024px){
  .c_modal__dialog{
    max-width: 375px;
    padding: 20px 33px 40px;

  }
  .c_modal__badge{
    width: 110px;
  }
  .c_modal__title{
    font-size: 24px;
  }
  .c_modal__desc{
    font-size: 15px;
  }
  .c_modal__name{
    font-size: 14px;
  }
}

/* モーダル表示時は背面スクロールを止める */
body.is-modal-open{ overflow: hidden; }




/* フッター */

.c_footer_logo {
    width: 260px;
    margin: 30px auto;
}
@media (min-width: 768px) {
    .c_footer_logo {
        width: 400px;
    }
}


.c_lists {
  font-size: 13px;
  line-height: 2;
  max-width: 330px;
  margin: 40px auto 0 !important;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px 20px;
}
@media (min-width: 768px) {
    .c_lists {
      font-size: 14px;
      max-width: 500px;
      margin: 50px auto 0 !important;
      display: block;
    }
}


.c_copy {
  text-align: center !important;
  margin: 10px 0 0 0 !important;
}


/* 固定ヘッダー分ずらす（ブラウザ標準スクロールにも効く） */
html {
  scroll-behavior: smooth; /* なめらかに移動（対応ブラウザで有効） */
}

/* ～1023px（SP/タブレット）：35px */
@media (max-width: 1023px) {
  html { scroll-padding-top: 35px; }
  .c_product_item { scroll-margin-top: 35px; }
}

/* 1024px～（PC）：63px */
@media (min-width: 1024px) {
  html { scroll-padding-top: 63px; }
  .c_product_item { scroll-margin-top: 63px; }
}

