/* Quuve版 追加スタイル（pc.css / sp.css の後に読み込む） */
:root {
  --q-forest: #121a1c;
  --q-ink: #0e1413;
  --q-mist: #efeeea;
  --q-stone: #dcd7cc;
  --q-line: #dcd7cc;
  --q-lime: #cbf43c;
  --q-serif: "Zen Old Mincho", "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
}

/* 1. 見出し・価格・コピーを明朝に */
body .menu_panel_ttl,
body .menu_panel_ttl_en,
body .menu_panel_count,
body .menu_select .menu_select_name,
body .menu_select .menu_select_main,
body .menu_select .menu_select_present_txt,
body .content_wrap .sention_item .inner h4,
body .content_wrap .sention_item .inner h5,
body .content_wrap .sention_item_concept .concept_ttl,
body .content_wrap .sention_item_concept .concept_lead,
body .content_wrap .sention_item_concept .concept_close,
body .content_wrap .sention_item_worry .worry_check .worry_check_ttl,
body .content_wrap .sention_item_worry .worry_check .worry_check_foot,
body .content_wrap .sention_item_wrift .article_list .article_item .article .ttl,
body .content_wrap .sention_item_wrift .article_list .article_item .article .article_num,
body .content_wrap .sention_item_wrift .inner .article_list .article_item .article .ttl,
body .content_wrap .sention_item_qa .qa .ttl,
body .content_wrap .sention_item_technique .t-box .ttl {
  font-family: var(--q-serif) !important;
  font-weight: 500 !important;
  letter-spacing: .04em;
}
body .menu_select .menu_select_main { font-weight: 500 !important; }

/* 2. 影を減らし、細い罫線に */
body .menu_select .menu_select_card,
body .hero_price .hero_price_card,
body .content_wrap .sention_item_option .option_card,
body .content_wrap .sention_item_wrift .article_list .article_item.bg_white,
body .content_wrap .sention_item_wrift .inner .article_list .article_item.bg_white {
  box-shadow: none !important;
  border: 1px solid var(--q-line);
}
body .menu_select .menu_select_present { box-shadow: none; }
body .menu_select .menu_select_btn { border-radius: 999px; letter-spacing: .08em; }

/* 3. 差し色を絞る（Face=forest / Head=グレー系、価格は ink） */
body .menu_select .menu_select_category_face,
body .menu_tabs .menu_tabs_btn_face { background: var(--q-forest); }
body .menu_select .menu_select_category_head,
body .menu_tabs .menu_tabs_btn_head { background: #595a58; }
body .menu_panel_count_face .menu_panel_count_num { color: var(--q-forest); }
body .menu_panel_count_head .menu_panel_count_num { color: #595a58; }
body .menu_select .menu_select_main,
body .menu_select .menu_select_main small { color: var(--q-ink); }
body .content_wrap .sention_item_concept .concept_ttl_accent { color: var(--q-ink); border-bottom: 1px solid rgba(14, 20, 19, .45); }
body .menu_select .menu_select_note strong { color: var(--q-ink); }
body .menu_select .menu_select_category { letter-spacing: .12em; font-weight: 500; }

/* 4. 余白を広げる */
body .content_wrap .sention_item { padding-top: 96px; padding-bottom: 96px; }
body .content_wrap .sention_item_concept { padding: 7.5rem 0; background: #fff; }
body .content_wrap .sention_item_worry { padding: 130px 0; }
body .menu_select .menu_select_desc,
body .content_wrap .sention_item_wrift .article .txt,
body .content_wrap .sention_item_qa .qa .txt { line-height: 2; }
@media screen and (max-width: 640px) {
  body .content_wrap .sention_item { padding-top: 14%; padding-bottom: 14%; }
  body .content_wrap .sention_item_concept { padding: 0 0 18%; background: #fff; }
  body .content_wrap .sention_item_worry { padding: 20% 0; }
}

/* 5. ボタン・タブ・バッジの角丸を控えめに */
body .menu_select .menu_select_btn,
body .menu_tabs .menu_tabs_btn,
body .btn,
body .btn_fixed a,
body .hero_price .hero_price_btn,
body .ebm_location_parts_wrap .map_button a { border-radius: 12px; }
body .menu_select .menu_select_category { border-radius: 8px; }

/* 6. 通常価格の取り消し線を別行・小さく（スマホのみ。PCは別行表示済み） */
@media screen and (max-width: 640px) {
  body .menu_select .menu_select_normal_inline {
  display: block !important;
  margin: .35rem 0 0;
  font-size: .75rem;
  font-weight: 400;
  color: #777775;
  text-decoration: line-through;
  letter-spacing: .02em;
  }
}

/* 7. ページトップボタンを小さな円形に（予約ボタンに被りにくく） */
body .page_top a {
  width: 36px; height: 36px; line-height: 34px; font-size: 18px;
  border: 1px solid var(--q-forest); border-radius: 50%;
  background: rgba(239, 238, 234, .92); color: var(--q-forest);
  transform: none;
}
body .page_top a:hover { background: var(--q-forest); color: #fff; }
body .page_top a i { transform: none; }
@media screen and (max-width: 640px) {
  body .page_top { right: 8px; bottom: 84px; opacity: .85; }
}

/* 8. カテゴリ表記：アイコン・ベタ色を外し、文字色のみで区別 */
body .menu_select .menu_select_category {
  background: none !important;
  padding: 0;
  border-radius: 0;
  font-size: .85rem;
  font-weight: 500;
  letter-spacing: .1em;
}
body .menu_select .menu_select_icon { display: none; }
body .menu_select .menu_select_category_face { color: #9a4f42; }
body .menu_select .menu_select_category_head { color: #35566b; }

/* 9. 写真下端の境目線を消す（画像の最終行がぼかしの下から見えるのを防ぐ） */
body .content_wrap .sention_item_concept .concept_photo img.pc { display: block; }
body .content_wrap .sention_item_concept .concept_photo img.sp { display: none; }
@media screen and (max-width: 640px) {
  body .content_wrap .sention_item_concept .concept_photo img.pc { display: none; }
  body .content_wrap .sention_item_concept .concept_photo img.sp { display: block; }
  body .content_wrap .sention_item_concept .concept_photo::after { bottom: -2px; height: calc(60% + 2px); }
}

/* 10. 提示のご案内：ボックス・バッジを外し、ゴシックの文章のみに */
body .menu_select .menu_select_present {
  background: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  padding: 0 1rem;
  margin-bottom: 1.2rem;
}
body .menu_select .menu_select_present_lead { display: none; }
body .menu_select .menu_select_present_txt {
  font-family: "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体", "YuGothic", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", "Meiryo", "Noto Sans JP", sans-serif !important;
  font-size: 1rem;
  font-weight: 700 !important;
  line-height: 1.8;
  letter-spacing: .04em;
  color: var(--q-ink);
  text-shadow: 0 0 6px rgba(255, 255, 255, .9);
}
body .menu_select .menu_select_present_txt strong { color: var(--q-ink); font-weight: 700; }

/* 11. カテゴリ表記に細い下線を入れて目立たせる */
body .menu_select .menu_select_category {
  padding: 0 .1rem .35rem;
  border-bottom: 1px solid currentColor;
  font-size: .95rem;
  letter-spacing: .14em;
}
body .menu_select .menu_select_category { line-height: 1.3; padding-bottom: .15rem; }

/* 12. コース名はゴシックに */
body .menu_select .menu_select_name {
  font-family: "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体", "YuGothic", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", "Meiryo", "Noto Sans JP", sans-serif !important;
  font-weight: 700 !important;
  letter-spacing: .02em;
}

/* 13. カード内のコース名を中央揃えに */
body .menu_select .menu_select_name { text-align: center; }

/* 14. メニュー直下の空セクション分の余白を詰める */
body .content_wrap .sention_item_course#price-detail { padding-top: 0; padding-bottom: 0; }
body .menu_select#menu { padding-bottom: 1.5rem; }

/* 15. HAPPY VOICE：外枠を外す／スライドできることを示す「→」と動く点 */
body .content_wrap .sention_item_voice .border_box { border: 0; }

body .content_wrap .sention_item_voice .voice_swipe_hint {
  position: relative;
  display: block;
  width: 72px;
  height: 12px;
  margin: .6rem 0 0 auto;
  padding: 0;
}
body .content_wrap .sention_item_voice .voice_swipe_hint::before {
  content: "";
  position: absolute;
  left: 0; right: 1px; top: 50%;
  height: 1px;
  background: var(--q-ink);
  opacity: .35;
}
body .content_wrap .sention_item_voice .voice_swipe_hint::after {
  content: "";
  position: absolute;
  right: 1px; top: 50%;
  width: 7px; height: 7px;
  border-top: 1px solid var(--q-ink);
  border-right: 1px solid var(--q-ink);
  opacity: .5;
  transform: translateY(-50%) rotate(45deg);
}
body .content_wrap .sention_item_voice .voice_swipe_dot {
  position: absolute;
  left: 0; top: 50%;
  width: 6px; height: 6px;
  margin-top: -3px;
  border-radius: 50%;
  background: var(--q-forest);
  animation: voiceSwipeDot 1.8s ease-in-out infinite;
}
@keyframes voiceSwipeDot {
  0%   { transform: translateX(0);    opacity: 0; }
  15%  { opacity: 1; }
  80%  { opacity: 1; }
  100% { transform: translateX(62px); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  body .content_wrap .sention_item_voice .voice_swipe_dot { animation: none; left: 50%; opacity: 1; }
}
@media screen and (max-width: 640px) {
  body .content_wrap .sention_item_voice .voice_swipe_hint { margin: .8rem auto 0; }
}

/* 16. スライドインジケーターをカードの上・中央に */
body .content_wrap .sention_item_voice .voice_swipe_hint,
body .content_wrap .sention_item_voice .happyvoice .contents .ttl .voice_swipe_hint {
  margin: 1.2rem auto 1.4rem;
  padding-right: 0;
  text-align: center;
}

/* 17. インジケーター：SLIDE表記を追加、写真から離しカードへ近づける */
body .content_wrap .sention_item_voice .voice_swipe_hint,
body .content_wrap .sention_item_voice .happyvoice .contents .ttl .voice_swipe_hint {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .7rem;
  width: auto;
  height: auto;
  margin: 3rem auto .2rem;
}
body .content_wrap .sention_item_voice .voice_swipe_hint::before,
body .content_wrap .sention_item_voice .voice_swipe_hint::after { content: none; }
body .content_wrap .sention_item_voice .happyvoice .contents .ttl { margin-bottom: 0; }
body .content_wrap .sention_item_voice .voice_swipe_label {
  font-family: var(--q-serif);
  font-size: .75rem;
  letter-spacing: .25em;
  line-height: 1;
  color: var(--q-ink);
}
body .content_wrap .sention_item_voice .voice_swipe_track {
  position: relative;
  display: block;
  width: 72px;
  height: 12px;
}
body .content_wrap .sention_item_voice .voice_swipe_track::before {
  content: "";
  position: absolute;
  left: 0; right: 1px; top: 50%;
  height: 1px;
  background: var(--q-ink);
  opacity: .35;
}
body .content_wrap .sention_item_voice .voice_swipe_track::after {
  content: "";
  position: absolute;
  right: 1px; top: 50%;
  width: 7px; height: 7px;
  border-top: 1px solid var(--q-ink);
  border-right: 1px solid var(--q-ink);
  opacity: .5;
  transform: translateY(-50%) rotate(45deg);
}
@media screen and (max-width: 640px) {
  body .content_wrap .sention_item_voice .voice_swipe_hint,
  body .content_wrap .sention_item_voice .happyvoice .contents .ttl .voice_swipe_hint { margin: 2rem auto .2rem; }
}

/* 18. 「完全予約制」タグ：薄い線の枠で囲む */
body .menu_select .menu_select_present_tag {
  display: inline-block;
  margin-right: .7rem;
  padding: .1rem .7rem;
  border: 1px solid rgba(14, 20, 19, .45);
  font-size: .8em;
  font-weight: 500;
  letter-spacing: .12em;
  line-height: 1.6;
  vertical-align: .08em;
  text-shadow: none;
}

/* 19. HAPPY VOICE の外枠：詳細度の高い既存ルール(.sention_item .inner .border_box)を上書き */
body .content_wrap .sention_item.sention_item_voice .inner .border_box { border: 0; }

/* 20. HAPPY VOICE のメイン写真を上へ（SLIDE表記と重ならないように） */
body .content_wrap .sention_item_voice .happyvoice .contents .ttl .image { bottom: 3.8rem; }
@media screen and (max-width: 640px) {
  body .content_wrap .sention_item_voice .happyvoice .contents .ttl .image { bottom: 2.6rem; }
}

/* 21. 背景にメリハリ：全体は白、要所だけ mist / stone */
body { background: #fff; }
body .content_wrap .sention_item_voice { background: var(--q-mist); }
body .content_wrap .sention_item_wrift,
body .bg_brown_lll { background-color: var(--q-mist); }

/* 補助テキストのグレーを少し濃く */
body .menu_select .menu_select_normal,
body .content_wrap .sention_item_voice .voice_card_name span { color: #595a58; }
body .menu_select .menu_select_normal_inline { color: #595a58; }

/* 11. 2メニューの導入タイトル（明朝体） */
body .menu_select .menu_select_lead_ttl {
  font-family: var(--q-serif);
  font-weight: 700;
  font-size: 1.5rem;
  line-height: 1.7;
  letter-spacing: .06em;
  text-align: center;
  color: var(--q-ink);
  margin: 0 auto 1.2rem;
  padding: 0 1rem;
}
@media screen and (max-width: 640px) {
  body .menu_select .menu_select_lead_ttl { font-size: 1.15rem; }
}

/* 12. 「初回限定 特別価格」の2行目に注記（ラベルと同じ左カラム） */
body .menu_select .menu_select_price_head {
  display: inline-block;
  vertical-align: middle;
  margin-right: .6rem;
  text-align: left;
}
body .menu_select .menu_select_price_head .menu_select_price_label {
  display: block;
  margin-right: 0;
}
body .menu_select .menu_select_once {
  display: block;
  margin-top: .15rem;
  font-size: .7rem;
  font-weight: 700;
  line-height: 1.3;
  white-space: nowrap;
  color: var(--q-ink);
}
