@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@300;400;500&family=Noto+Sans+JP:wght@300;400;500&family=Noto+Serif+JP:wght@300;400;500&display=swap');

/* SP版 */

/* ------------------------------------------
   Phase 1: ベース・全体の印象
   ------------------------------------------ */

/* --- フォント・テキスト --- */
body, p, h1, h2, h3, small, div, ul, li, img, header, footer, nav, section {
  font-family: "Noto Serif JP", serif;
  color: #534a55;
}

body {
  background-color: #f5f3f2;
}

/* PC: header, .hader_logo_box, .top_main_area → SP: .hader_logo_boxなし */
header, .top_main_area {
  background-color: #f5f3f2;
}

a {
  color: #be6b7c;
}

.border {
  border-bottom: 1px solid #e6bfc9 !important;
}

/* --- ヘッダー上部帯 --- */
#header_fix .header_fix_bg {
  background: #be6b7c;
}

#header_fix .header_fix_bg h1 {
  font-family: "Noto Serif JP", serif;
  font-weight: 300;
  letter-spacing: 2px;
}

#header_fix .header_fix_bg h1 a {
  color: #fff;
}

/* --- 電話アイコン（PC: .hader_logo_box → SP: .header_logo_image） --- */
.header_call {
  width: 320px;
  margin: 5px auto 30px;
}

.header_logo_image .header_call .header_call_box .top_icon {
  background: #be6b7c;
}

.header_logo_image .header_call .header_call_box .header_call_text .header_call_number {
  color: #be6b7c;
}

.header_logo_image .header_call .header_call_box .header_call_text .header_call_number a {
  color: #be6b7c;
}

.header_logo_image .header_call .header_call_box .header_call_text .top_hours,
.header_logo_image .header_call .header_call_box .header_call_text .top_hours:before {
  color: #be6b7c;
}

/* --- ナビゲーションメニュー --- */
header {
  border: none;
}

#hader_menu {
  border-top: 1px solid #d8a6b0;
  border-bottom: 1px solid #d8a6b0;
}

.li_border {
  border-right: solid 0.25px #d8a6b0;
}

.li_border:hover {
  background: rgba(190, 107, 124, 0.1);
}

.li_border a {
  color: #be6b7c;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
}

.li_border a:hover {
  color: #fff;
}

.li_border_none:hover {
  background: rgba(190, 107, 124, 0.1);
}

.li_border_none a {
  color: #be6b7c;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
}

.li_border_none a:hover {
  color: #fff;
}

/* --- サイドメニュー（PC: .side_nav .sidemenu → SP: .sidr） --- */
.sidr {
  background: none;
  box-shadow: none;
}

.sidr ul {
  border-top: none !important;
  border-bottom: none !important;
}

.sidr ul li {
  background: #9a9294;
  border-top: none !important;
  border: none;
  margin-bottom: 1px;
}

.sidr ul li p {
  color: #fff;
}

.sidr ul li a,
.sidr ul li span {
  background: transparent;
  color: #fff !important;
  font-family: "Noto Sans JP", sans-serif;
}

.sidr ul li a .material-icons {
  color: #fff;
}

.fa-window-close:before {
  color: #fff !important;
}

/* --- セクション見出し --- */
/* SP re_style.css が background: linear-gradient / border-radius: 6px / color: #fff を設定するため明示リセット */
.container_box section h2 {
  width: 100%;
  margin: 0 auto 17px;
  padding: 10px 0 10px;
  background: none;
  border-radius: 0;
  color: #be6b7c;
  border: 0.5px solid rgba(216, 166, 176, 0.4);
  box-shadow: 0 2px 8px rgba(216, 166, 176, 0.2);
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 3px;
}

/* --- 汎用ボタン --- */
.common_enter {
  background: #be6b7c;
  border-radius: 0;
  transition: all 0.3s ease;
  width: 90%;
  margin-top: 30px;
}

.common_enter a {
  color: #fff;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  letter-spacing: 1px;
  font-size: 16px !important;
}

/* --- フッター --- */
footer {
  background: #534a55;
}

.footer_information {
  background: #625a64;
  border-top: 1px solid #7a7280;
}

/* PC: #footer_shopname → SP: .footer_information h2 */
.footer_information h2 {
  font-family: "Noto Serif JP", serif;
  font-weight: 300;
  color: #fff;
  letter-spacing: 2px;
}

.copy {
  background: #534a55;
  color: rgba(255, 255, 255, 0.6);
  font-size: 12px;
  letter-spacing: 1px;
}

.copy a {
  color: rgba(255, 255, 255, 0.6);
}

.search_sort_box button {
  font-family: "Noto Serif JP", serif;
}

/* howto */
/* --- .swiper スライドなしは非表示（howtoページ等、空swiperを隠す） ---
   TOPページは .swiper-slide が存在するため影響しない */
.swiper:not(:has(.swiper-slide)) {
  display: none;
}

.beg_area {
  font-family: "Noto Serif JP", serif;
  font-size: 18px;
  font-weight: 300;
}

/* --- スクロールトップ --- */
.scroll_top_area {
  background: none;
}

.scroll_top_area p#page-top {
  background: #be6b7c;
}

/* ------------------------------------------
   Phase 2: トップページ固有セクション
   ------------------------------------------ */

/* --- お知らせ --- */
.top_main_area .ticker {
  background: #be6b7c;
}

/* --- ニュースセクション --- */
.top_news_comment {
  color: #be6b7c;
}

.top_news ul li {
  border-bottom: 1px dotted #ccc;
  padding: 10px;
}

.top_news ul li:last-child {
  border-bottom: none;
}

.top_news_enter {
  background: #be6b7c;
  border-radius: 0;
}

.top_news_enter a {
  color: #fff;
  letter-spacing: 2px;
}

/* --- ニュースボックス（CMS挿入） --- */
.top_news_textbox {
  border: none;
}

.top_news_textbox_inner .topic {
  border-bottom: 1px dotted #ccc;
  margin-bottom: 20px;
  padding: 0;
}

.top_news_textbox_inner .topic .topic_text h2 {
  background: none;
  color: #686666;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  letter-spacing: 2px;
  border: none;
  box-shadow: none;
}

/* --- モーダル --- */
.modal-content {
  background: #F9F3F5;
}

.modal-content_p01 {
  background: rgba(190, 107, 124, 0.15);
}

.modal-content_p02 {
  background: rgba(190, 107, 124, 0.3);
}

.modal-content ul li {
  color: #534a55;
}

.modal-content ul li span {
  color: #534a55;
}

/* --- ランキング（ベース） --- */
.rankinglist_loop ul li a {
  background: #F9F3F5;
  color: #534a55;
}

.ranking_list_name {
  color: #be6b7c;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
}

.ranking_profile p {
  color: #534a55;
}

.font_standard {
  color: #F9F3F5;
}

.top_ranking_enter {
  background: #be6b7c;
  border-radius: 0;
  transition: all 0.3s ease;
}

.top_ranking_enter a {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  letter-spacing: 2px;
}

.rankinglist_loop .topranking_icon {
  text-align: center;
}

.rankinglist_loop .topranking_icon ul {
  padding: 0;
  text-align: center;
}

.rankinglist_loop .topranking_icon ul li {
  background: #9b93c7;
  color: #fff;
  border-radius: 2px;
  margin: 0 3px;
  float: none;
  width: auto;
  display: inline-block;
}

/* --- スケジュールリスト --- */
.top_schdule_list ul li {
  background: #f8f8f8;
  box-shadow: 0 3px 3px rgb(198 188 190 / 80%);
  margin: 0 8px 10px 0;
  /* margin 3px × 2 = 6px を3アイテムで割った分だけ幅を縮小 */
  width: calc(32.25% - 2px);
}

.top_schdule_list ul li:last-child {
  margin: 0 0 10px 0;
}

.top_schdule_list ul li a {
  border: none;
  background: #f8f8f8;
}

.list_prof {
  padding: 3px 0 20px;
}

.list_prof_name {
  width: 90%;
  padding: 7px;
  color: #be6b7c;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
}

.list_prof_spec {
  font-size: 10px;
  color: #534a55;
}

/* SP re_top.css が color: #d05a9c を設定するため上書き */
.list_prof_comment {
  padding: 3px 0;
  color: #9b93c7;
}

/* SP re_top.css が border: 1px solid #FE7F9C / color: #000 を設定するため上書き */
.list_prof_schdule {
  color: #fff;
  background: #c88e9a;
  border: none;
}

.toplist_icon ul li {
  background: #9b93c7;
  color: #fff;
  border-radius: 2px;
}

/* --- 動画セクション --- */
.movie_top_link {
  background: #BE9C91;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  letter-spacing: 2px;
}

.movie_top_box {
  border: none;
}

.movie_top_box h3 {
  border: none;
  font-size: 15px;
  padding: 15px 5px 6px 20px;
}

.movie_link_box {
  width: 90%;
}

.movie_page_title {
  border: none;
  margin: 0;
  padding: 0;
}

.mvTtl {
  width: 100% !important;
  margin-bottom: 15px !important;
  padding: 0 !important;
  font-size: 18px !important;
  font-family: "Noto Serif JP", serif !important;
  border: none !important;
}

#movie_top_box h3 {
  font-size: 18px;
  font-weight: 700;
  margin: 10px 0;
}



/* --- 写メ日記 --- */
#top_shamail {
  width: 100%;
  border: none;
  margin-top: 30px;
}

#top_shamail ul {
  margin: 20px auto 5px auto;
  padding: 0 15px;
  box-sizing: border-box;
}

#top_shamail ul li {
  width: calc(50% - 7.5px);
  border: none;
  background: #f8f8f8;
  box-shadow: 0 3px 3px rgb(198 188 190 / 80%);
  padding-bottom: 15px;
  margin: 0 15px 15px 0;
}

#top_shamail ul li:nth-child(even) {
  margin: 0 0 15px 0;
}

/* SP re_top.css が background: rgba(23,138,186,0.9)（青）を設定するため上書き */
.top_shamail_image_box {
  background: #f8f8f8;
}

/* SP re_top.css が background: rgba(254,127,156,0.95)（ピンク）を設定するため上書き */
.top_shamail_image p {
  background: transparent;
  color: #999;
}

/* SP re_top.css が border: 1px #DF5286 solid を設定するため上書き */
.shamail_title {
  border: none;
}

/* SP re_top.css が color: #d05a9c を設定するため上書き */
.shamail_title h3 a {
  color: #be6b7c;
  font-family: "Noto Sans JP", sans-serif;
  padding: 0;
}

.shamail_title a {
  color: #be6b7c;
  text-decoration: none;
}

/* SP TOPページの最新写メ日記 — diary一覧 (.list_shamail_image p / .listshamail_title) と同じ装飾に揃える */
#top_shamail .top_shamail_image p {
  position: static;
  background: transparent;
  color: #7a7280;
  font-size: 14px;
  font-weight: 400;
  font-family: "Cormorant Garamond", serif;
  letter-spacing: 1px;
  padding: 8px 10px 0;
  text-align: left;
  float: none;
}

#top_shamail .shamail_title {
  border: none;
  padding: 0 8px;
}

#top_shamail .shamail_title h3 {
  margin: 2px 0;
}

#top_shamail .shamail_title h3 a {
  color: #be6b7c;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 0.5px;
  padding: 2px 0;
  text-align: center;
  text-decoration: none;
}

#top_shamail .shamail_title a {
  color: #be6b7c;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  text-decoration: none;
  letter-spacing: 0.5px;
  font-size: 12px;
  padding: 2px 0;
}

#top_shamail .shamail_title a span {
  color: #7a7280;
  font-weight: 300;
  font-size: 11px;
}

/* --- ロゴ帯（別ページ用） --- */
#header_logo_contents {
  background: #f5f3f2;
}

.header_logo_image h2 {
  margin: 0 auto 25px auto;
}

.header_logo_image h2 img {
  width: 130px;
}

.header_logo_image h2 a span {
  background-color: #be6b7c;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 300;
}

/* --- リストループ --- */
.list_loop {
  background: #be6b7c;
  border-radius: 2px;
}

/* --- 検索セクション --- */
.search_title {
  background: #a3876b;
  border-radius: 2px;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  letter-spacing: 2px;
}

.search_btn:before,
.search_btn:after {
  background: #a3876b;
}

/* ------------------------------------------
   Phase 3: 仕上げ・微調整
   ------------------------------------------ */

.common_enter:hover,
.top_ranking_enter:hover {
  opacity: 0.85;
  transition: all 0.3s ease;
}

.footer_sns li a {
  transition: all 0.3s ease;
}

.footer_sns li a:hover {
  opacity: 0.8;
  transform: translateY(-3px);
}

.footer_banner_area ul li a {
  transition: opacity 0.3s ease;
}

.footer_banner_area ul li a:hover {
  opacity: 0.85;
}

/* ------------------------------------------
   Fix: 追加修正
   ------------------------------------------ */

/* --- Fix ①: ご相談無料エリア - 白抜き文字 --- */
.top_icon .top_icon_text {
  color: #fff !important;
}

/* --- Fix ③: ランキングカード - 塗りつぶし・白文字 --- */
.top_ranking .rankinglist_loop ul li a {
  background: #534a55;
  color: #fff;
}

/* re_style.css の .clearfix { overflow: hidden } で box-shadow 下部が切れるため
   display: flow-root で float 崩れを防ぎつつ overflow をリセット */
.top_ranking .rankinglist_loop ul {
  display: flow-root;
  overflow: visible;
  padding-bottom: 10px;
}

.ranking_list_name {
  color: #e6bfc9 !important;
}

.ranking_profile p {
  color: rgba(255, 255, 255, 0.85) !important;
}

.font_standard {
  color: rgba(255, 255, 255, 0.7) !important;
}

/* --- Fix ④: こだわり検索フォームのボーダー色を背景と統一 --- */
.search_contents .search_btn_inner {
  border: 1px solid #BE9C91;
}

/* --- 背景色統一 --- */
.container_box,
.swiper,
.swiper-slide,
.top_banner_area {
  background-color: #f5f3f2;
}

/* --- 検索フォーム詳細 --- */
.search_contents .search_btn_inner_bg .item ul,
.search_contents .search_btn_inner_bg .item ul.therapist_searc {
  border: none;
}

.search_contents .search_btn_inner_bg .item ul li label,
.search_contents .search_btn_inner_bg .item ul.therapist_searc li label {
  background: #a3876b;
}

.start_search {
  padding: 20px 0;
}

.search_contents .start_search input {
  background: #875e36;
  font-family: "Noto Serif JP", serif;
  font-size: 18px;
  width: 80%;
}

.search_contents .search_btn_inner_bg .searchname {
  color: #875e36;
  margin: 15px auto;
}

/* ソートボタン（HTML内インラインstyleを上書き） */
.search_sort_box {
  background: none;
}

.search_sort_box button,
.search_sort_box a {
  background: #be6b7c;
  color: #fff;
}

.search_sort_box button.active,
.search_sort_box a.active {
  background: #534a55;
  color: #fff;
}

/* --- 新人セラピスト(カルーセル) --- */
#carousel_wrapper {
  width: 100%;
}

/* clip-path は painting のみで layout には作用しないため、
   9999px の UL がページ幅を押し広げてスマホ表示が崩れる。
   親で overflow-x: clip することで layout overflow を遮断しつつ、
   overflow-y: visible で下方向の box-shadow を描画可能にする */
#top_carousel_slider,
#top_carousel_slider2 {
  overflow-x: clip;
  overflow-y: visible;
}

/* carouFredSel プラグインがリロード時に inline style で
   overflow:hidden を再設定するケースがあるため !important で上書き。
   clip-path は下方向を -30px まで広げて shadow の描画領域を確保 */
.caroufredsel_wrapper {
  overflow: visible !important;
  clip-path: inset(0px 0px -30px 0px);
}

/* プラグインが UL(#carousel) 側に overflow を付与した場合の保険 */
#carousel_wrapper,
#carousel_wrapper2,
#carousel,
#carousel2 {
  overflow: visible !important;
}

#carousel_wrapper {
  padding-bottom: 10px;
}

.top_newface #carousel_wrapper,
.top_newface #carousel_wrapper2 {
  background: #f5f3f2;
}

#carousel > li {
  width: 114px !important;
  background: #f8f8f8;
  box-shadow: 0 3px 3px rgb(198 188 190 / 80%);
  margin: 0 8px 0 0;
  padding-bottom: 20px;
  /* carouFredSel が inline で height:150% を設定するため !important で上書き */
  height: auto !important;
}

/* :last-child で margin を変えるとプラグインの幅計算が崩れるため統一 */

#carousel li img {
  width: 100%;
  aspect-ratio: 3 / 4;
  height: auto;
  object-fit: cover;
  object-position: center top;
  margin: 0;
  padding: 0;
}

.top_newface #carousel li a {
  background: #f8f8f8;
}

.top_newface #carousel li img {
  border: none;
}

.top_newface .carousel_prof_box {
  background: #f8f8f8;
  border: none;
  margin: 0 auto;
}

.top_newface .carouse_date {
  background: #9b93c7;
  color: #fff;
  border: none;
  padding: 10px 0px;
  width: 100%;
}

.carouse_name {
  padding: 5px 0;
  color: #be6b7c;
  font-size: 12px;
  font-weight: 500;
  /* .carouse_spec/.carouse_comment と同様に折り返しを防ぎカード高さを揃える */
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.carouse_spec {
  font-size: 10px;
  color: #534a55;
}

.carouse_comment {
  color: #9b93c7;
  padding: 3px 0;
}

#carousel li .topnewface_icon ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

#carousel li .topnewface_icon ul li {
  background: #9b93c7;
  /* 基本CSSの #carousel li から継承されるレイアウト崩れをリセット */
  float: none;
  width: auto;
  padding-bottom: 0;
  box-shadow: none;
  margin: 2px 3px;
}

.top_newface #prev_,
.top_newface #next_,
.top_newface #prev_2,
.top_newface #next_2 {
  background-color: #be6b7c;
}

/* --- 即メン(#carousel2) を top_schdule_list / #carousel と同等のカードデザインに --- */
/* 即メンは items.width:400/visible:3 の carouFredSel が固定幅で
   wrapper を確定してしまい、SP実機で li が狭くなる。3件しかなく
   スライドする必要もないため、プラグインの inline スタイルを打ち消し、
   ネイティブの flex レイアウトに置き換える */
#top_carousel_slider2 .caroufredsel_wrapper {
  width: 100% !important;
  height: auto !important;
  overflow: visible !important;
}

#top_carousel_slider2 #carousel2 {
  width: 100% !important;
  display: flex !important;
  flex-wrap: wrap;
  justify-content: flex-start;
  transform: none !important;
  position: static !important;
  left: auto !important;
  padding: 0;
  margin: 0;
}

#carousel2 > li {
  width: calc(33.33% - 6px) !important;
  background: #f8f8f8;
  box-shadow: 0 3px 3px rgb(198 188 190 / 80%);
  margin: 0 8px 10px 0 !important;
  padding-bottom: 20px;
  height: auto !important;
  /* flex 配置に切り替えるため float をリセット */
  float: none !important;
  position: static !important;
  list-style: none;
  text-align: center;
  line-height: 1.3;
}

#carousel2 > li:nth-child(3n) {
  margin-right: 0 !important;
}

/* 即メンは要素数が少ないため戻る/進むボタンは非表示 */
#prev_2,
#next_2 {
  display: none;
}

#top_carousel_slider2 {
  padding-bottom: 10px;
}

/* 空のli(<li></li>)はカード背景・影を出さない */
#carousel2 > li:empty {
  background: transparent;
  box-shadow: none;
  padding-bottom: 0;
}

#carousel2 li img {
  width: 100%;
  aspect-ratio: 3 / 4;
  height: auto;
  object-fit: cover;
  object-position: center top;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 0;
  background: transparent;
}

.top_newface #carousel2 li a {
  background: #f8f8f8;
  display: block;
  width: 100%;
  margin: 0;
  color: #534a55;
}

.top_newface #carousel2 li img {
  border: none;
}

.top_newface #carousel2 .carousel_prof_box {
  background: #f8f8f8;
  border: none;
  margin: 0 auto;
  padding: 4px 0 0;
}

/* ------------------------------------------
   Phase 4: CMS挿入コンテンツ
   ------------------------------------------ */

.top_news_textbox .therapist-box {
  background: none;
  box-shadow: none;
  margin: 0;
  padding: 0;
}

.therapist-title {
  display: none;
}

.topic .topics-box,
.topic .home-box {
  margin: 0;
  padding-top: 10px;
  background: none;
  box-shadow: none;
}

.topics-title,
.home-title {
  display: none;
}

.ticker {
  background: #be6b7c;
}

.therapist-box .therapist-btn {
  background: #be6b7c;
}

.therapist-box .therapist-name {
  color: #be6b7c;
}

.therapist-box .therapist-text {
  color: #be6b7c;
}

.top_news_textbox .therapist-card {
  background: none;
  gap: 0;
}

.topic .topics-sub {
  color: #be6b7c;
}

.topic .cta-box {
  background: #e49bad;
}

.topic .cta-box a {
  color: #e49bad;
}

.topic .home-flow {
  background: #f1e4e4;
  color: #be6b7c;
}

.topic .topics-list {
  background: #f1e4e4;
  color: #be6b7c;
}

/* --- Swiper ナビゲーション・ページネーション --- */
.swiper-button-prev:after,
.swiper-button-next:after {
  color: #be6b7c !important;
}

.swiper-pagination-bullet {
  background: #d8a6b0 !important;
}

.swiper-pagination-bullet-active {
  background: #be6b7c !important;
}

:root {
  --swiper-pagination-color: #be6b7c;
  --swiper-theme-color: #be6b7c;
  --swiper-navigation-color: #be6b7c;
}

/* service */
.fanst_top {
  padding: 20px 5% 30px;
}

.fanst_service {
  width: 100%;
  margin-bottom: 10px;
  padding: 10px 2% 0;
  box-sizing: border-box;
}

.fanst_service_title {
  float: left;
  width: 50%;
  max-width: 70px;
  margin-right: 10px;
  font-size: 15px;
  font-family: "Noto Serif JP", serif;
  background: #c88e9a;
}

.fanst_service_text {
  padding: 0;
  font-size: 15px;
  font-family: "Noto Serif JP", serif;
  color: #534a55;
  text-align: left;
}

span.fanst_service_text {
  width: 100% !important;
  padding-top: 7px;
  padding-left: 10px;
}

.fanst_box_ul {
  width: 100%;
  line-height: 1.8;
  padding: 20px 3% 0 8%;
  box-sizing: border-box; /* 元CSS padding:20px 5% 0 8% との合計が113%になるのを防ぐ */
}

.fanst_box_ul li {
  width: 100%;
}

/* Font Awesome 矢印 → dli-chevron-down スタイル */
.fanst_box:before {
  display: none;
}

.fanst_box:after {
  content: "";
  font-family: initial;
  font-size: 0;
  background: none;
  clip-path: none;
  display: block;
  width: 28px;
  height: 28px;
  border-left: 3px solid #c88e9a;
  border-bottom: 3px solid #c88e9a;
  border-right: none;
  border-top: none;
  transform: rotate(-45deg);
  position: absolute;
  left: calc(50% - 14px);
  bottom: -52px;
}

.fanst_titlel {
  border: none;
  font-family: "Noto Serif JP", serif;
  color: #be6b7c;
}

.fanst_titlel i {
  display: none;
}

.fanst_text {
  width: 100%;
  font-size: 14px;
  line-height: 1.8;
}

.fanst_box_otherarea {
  width: 100%;
  border: none;
}

.fanst_box_otherarea_image {
  padding-bottom: 30px;
}

/* couple */
.beg_area span {
  font-weight: normal;
}

.beg_text span {
  font-weight: normal;
}

.diversion_area {
  border: none !important;
}

/* system */
.system_h3 {
  margin-top: 20px;
  font-family: "Noto Serif JP", serif;
  color: #d05a9c;
  font-size: 20px;
  line-height: 1.5;
}

.system_h4 {
  font-size: 15px;
  color: #d05a9c;
  margin: 0;
  line-height: 1.6;
}

.system_text_top {
  width: 95%;
  margin: 0 auto;
  font-size: 14px;
  line-height: 2;
}

.system_contents_box {
  width: 98%;
  margin: 0 auto;
  padding: 0 0 20px;
}

.system_contents_box td.sys_table_title {
  padding: 10px 3%;
  border: 1px solid #a3876b;
  background: #a3876b;
  font-size: 14px;
  font-weight: normal;
}

.system_contents_box td.sys_table_left,
.system_contents_box td.sys_table_right {
  padding: 8px;
  color: #875e36;
  font-size: 14px;
  border: 1px solid #a3876b;
  font-weight: normal;
}

.system_contents_box .system_label {
  font-size: 14px;
  font-weight: normal;
}

.system_contents_box .system_label_sm {
  font-size: 14px;
  font-weight: normal;
}

.system_notice_list {
  margin: 0;
  padding: 0;
  list-style: none;
  line-height: 2;
}

.system_notice_item {
  font-size: 13px;
}

.system_notice_item_mb {
  margin-bottom: 20px;
}

.system_list {
  width: 80%;
  margin: 20px auto 40px;
}

.system_list li {
  margin: 0 auto 15px;
  font-size: 13px;
}

/* system - 旧インラインスタイルをクラス化したもの */
.system_red {
  color: #be6b7c;
  font-weight: normal;
  font-size: 18px;
}

.system_red_text {
  color: #be6b7c;
}

.system_caption {
  font-size: 12px;
  font-weight: normal;
}

.system_caption_dark {
  font-size: 12px;
  font-weight: normal;
  color: #534a55;
}

.system_caption_md {
  font-size: 12px;
}

.system_course_min {
  font-size: 16px;
  font-weight: normal;
}

.system_course_label {
  font-size: 13px;
  font-weight: normal;
}

.system_price {
  font-size: 14px;
}

.system_label {
  font-size: 13px;
  font-weight: normal;
}

.system_label_sm {
  font-size: 13px;
}

.system_section_title {
  font-size: 16px;
}

.text_left   { text-align: left !important; }
.text_center { text-align: center !important; }
.text_right  { text-align: right !important; }

.block {
  display: block;
}

.system_intro {
  width: 98%;
  display: block;
  font-size: 13px;
  text-align: center;
  margin: 0 auto 10px;
  padding: 0;
}

.system_note {
  padding: 0 0 20px;
  width: 100%;
  box-sizing: border-box;
  text-align: left;
}

.system_note_text {
  color: #534a55;
  font-size: 13px;
}

.system_note_red {
  color: #534a55;
  font-size: 13px;
}

.system_attention {
  display: block;
  width: 100%;
  text-align: center;
  margin: 5px auto 30px;
  padding: 15px 3%;
  background: #f1e4e4;
  line-height: 2;
  box-sizing: border-box;
}

.system_attention_lg {
  font-size: 16px;
}

.system_attention_md {
  font-size: 13px;
}

.system_attention_red {
  color: #be6b7c;
  font-size: 13px;
  padding: 5px;
}

.system_attention_mark {
  color: #534a55;
  padding: 5px;
}

.system_attention_box {
  background: #f1e4e4;
  box-sizing: border-box;
  font-size: 13px;
  line-height: 2;
  margin: 0 auto 15px;
  padding: 20px 5%;
  width: 100%;
  text-align: center;
}

.system_attention_p {
  display: block;
  width: 100%;
  text-align: left;
  font-size: 14px;
  padding: 15px 4%;
  margin: 5px 0;
  background: #f1e4e4;
  line-height: 2;
  box-sizing: border-box;
}

.system_attention_p span {
  display: block;
}

.system_attention_p_red {
  font-size: 13px;
  color: #be6b7c;
}

.system_cancel_note {
  margin: 0 auto;
  padding: 0 0 20px;
  width: 96%;
}

.system_cancel_note span {
  color: #be6b7c;
  font-size: 13px;
}

.system_more {
  width: 70%;
  margin: 40px auto;
  background: #d05a9c;
}

.system_caution {
  width: 100%;
  margin-top: 30px;
  border: none;
}

.system_caution h4 {
  padding: 10px 0;
  font-family: "Noto Serif JP", serif;
}

.caution_box {
  padding: 15px 0;
  background: none;
}

.caution_box span {
  font-size: 16px;
  padding: 20px 0;
  color: #be6b7c;
}

.caution_box ul li {
  color: #534a55;
  line-height: 2;
}

/* ------------------------------------------
   ユーティリティ: margin / padding
   ------------------------------------------ */
.mt0  { margin-top: 0 !important; }
.mt5  { margin-top: 5px !important; }
.mt10 { margin-top: 10px !important; }
.mt15 { margin-top: 15px !important; }
.mt20 { margin-top: 20px !important; }
.mt25 { margin-top: 25px !important; }
.mt30 { margin-top: 30px !important; }
.mt40 { margin-top: 40px !important; }
.mt50 { margin-top: 50px !important; }

.mb0  { margin-bottom: 0 !important; }
.mb5  { margin-bottom: 5px !important; }
.mb10 { margin-bottom: 10px !important; }
.mb15 { margin-bottom: 15px !important; }
.mb20 { margin-bottom: 20px !important; }
.mb25 { margin-bottom: 25px !important; }
.mb30 { margin-bottom: 30px !important; }
.mb40 { margin-bottom: 40px !important; }
.mb50 { margin-bottom: 50px !important; }

.pt0  { padding-top: 0 !important; }
.pt5  { padding-top: 5px !important; }
.pt10 { padding-top: 10px !important; }
.pt15 { padding-top: 15px !important; }
.pt20 { padding-top: 20px !important; }
.pt25 { padding-top: 25px !important; }
.pt30 { padding-top: 30px !important; }

.pb0  { padding-bottom: 0 !important; }
.pb5  { padding-bottom: 5px !important; }
.pb10 { padding-bottom: 10px !important; }
.pb15 { padding-bottom: 15px !important; }
.pb20 { padding-bottom: 20px !important; }
.pb25 { padding-bottom: 25px !important; }
.pb30 { padding-bottom: 30px !important; }



/* ------------------------------------------
   simulator (料金シミュレーター)
   ------------------------------------------ */

/* 全体ボックス */
div.infoInBox {
  margin-top: 20px;
  background: rgba(190, 107, 124, 0.05);
  border: 1px solid #e6bfc9;
  border-radius: 8px;
  padding: 10px 0;
}

/* 各フォーム行 */
div.infoInBox .form {
  border-bottom: 1px solid #e6bfc9;
  border-radius: 0;
  padding: 10px 12px 22px;
  margin-bottom: 8px;
}

/* ラベル */
div.infoInBox .form p.name {
  font-size: 14px;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  color: #be6b7c;
  letter-spacing: 1px;
  margin-bottom: 10px;
  line-height: 1.6;
}

/* 必須・補足記号 */
div.infoInBox .form p span {
  color: #be6b7c;
}

div.infoInBox .form p span.attention {
  display: block !important;
  color: #9b93c7;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 12px;
  padding-top: 4px;
}

div.infoInBox .form p name.attention {
  color: #be6b7c;
}

/* 入力 / セレクト */
div.infoInBox .form p.input input,
div.infoInBox .form p.input select,
div.infoInBox .form select,
div.infoInBox .form p.area textarea {
  border: 1px solid #e6bfc9 !important;
  background: #fff !important;
  border-radius: 4px;
}

div.infoInBox .form select:disabled,
div.infoInBox .form p.input select:disabled {
  background: #f0ebec !important;
}

/* コース・オプション行 */
div.infoInBox .courseCalc,
div.infoInBox .optionCalc {
  color: #534a55;
  line-height: 2.2;
  padding: 6px 8px;
  margin-bottom: 4px;
}

div.infoInBox .courseCalc label,
div.infoInBox .optionCalc label {
  color: #534a55;
}

/* コース見出し */
div.infoInBox .form p.input > p {
  color: #be6b7c;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  letter-spacing: 1px;
}

/* 計算エリア */
#calcArea {
  width: 80%;
  margin: 20px auto;
  padding: 16px;
  background: #fff;
  border: 1px solid #e6bfc9;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(216, 166, 176, 0.15);
}

#calcArea .totalBase {
  color: #534a55;
  font-family: "Noto Serif JP", serif;
  font-size: 14px;
}

#calcArea .totalBase > div {
  color: #534a55;
}

/* 合計金額 */
#calcArea .totalBase > div:last-of-type {
  color: #be6b7c;
  font-size: 16px;
  border-top: 1px solid #e6bfc9;
  margin-top: 10px;
  padding-top: 12px;
}

#calcArea #totalPrice {
  color: #be6b7c !important;
  font-size: 26px;
  font-weight: 500;
  padding: 0 5px;
}

#err_message {
  color: #c44 !important;
  font-size: 13px;
}

.totalMemo {
  color: #be6b7c !important;
  font-size: 12px;
  line-height: 1.8;
}

/* ボタン */
.btn_calc,
#copy_btn {
  width: 70% !important;
  padding: 20px !important;
  background-color: #be6b7c !important;
  background: #be6b7c !important;
  color: #fff !important;
  font-family: "Noto Serif JP", serif !important;
  font-weight: 700 !important;
  letter-spacing: 3px;
  border-radius: 2px !important;
  border: none !important;
  transition: all 0.3s ease;
}

.btn_calc:hover,
#copy_btn:hover {
  background-color: #a85a6b !important;
  background: #a85a6b !important;
}


/* ------------------------------------------
   schedule (出勤スケジュール)
   ------------------------------------------ */

.search_contents {
  margin-top: 30px;
}

/* 日付セレクター */
.schedule_select select,
#select_sche_date {
  padding: 6px;
  background: #F9F3F5 !important;
  border: 1px solid #be6b7c !important;
  color: #be6b7c;
  text-align: center;
  font-size: 20px;
  font-weight: 700;
  font-family: "Noto Serif JP", serif;
}

.schedule_select:after {
  top: 18%;
  color: #be6b7c;
}

/* スケジュールカード */
.list_wrap .listpage_style {
  border: none;
  box-shadow: 0 4px 4px rgb(198 188 190 / 80%);
  background: #fff;
  margin: 12px auto;
}

.listpage_profile {
  padding: 5px 0 5px 8px;
}

/* セラピスト名 */
.listpage_profile_name {
  color: #be6b7c;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  letter-spacing: 1px;
}

/* スペック行（年齢・身長） */
.listpage_profile p:nth-child(2) {
  color: #534a55;
  font-size: 13px;
}

.listpage_profile p:nth-child(2) span{
  color: #d05a9c!important;
}

/* キャッチコピー */
.listpage_profile p:nth-child(3) {
  font-weight: 700;
  color: #9b93c7;
  font-family: "Noto Serif JP", serif;
}

/* 出勤時間枠 */
.listpage_prof_schdule {
  background: rgba(190, 107, 124, 0.06);
  border: 1px solid #e6bfc9;
  color: #534a55;
  font-family: "Noto Serif JP", serif;
  border-radius: 4px;
  padding: 4px 3px;
  margin: 6px 0;
}

.listpage_prof_schdule span {
  color: #be6b7c;
  font-size: 13px;
  margin-left: 5px;
}

/* タグピル */
.listpage_icon ul li {
  margin: 0 2px 3px 0;
  padding: 4px 5px;
  background: #9b93c7;
  color: #fff;
  border-radius: 2px;
  font-weight: 700;
  letter-spacing: 1px;
}


/* ------------------------------------------
   therapist (セラピスト紹介) - 検索ボックス
   ------------------------------------------ */

.search_box .title {
  font-family: "Noto Serif JP", serif !important;
  font-weight: 500 !important;
  color: #be6b7c !important;
  letter-spacing: 1px;
  margin-bottom: 8px;
}

.search_box .search_name {
  width: 70% !important;
  padding: 8px !important;
  box-sizing: border-box !important;
  vertical-align: middle;
  border: 1px solid #e6bfc9 !important;
  border-radius: 4px !important;
  background: #fff !important;
  font-family: "Noto Serif JP", sans-serif !important;
  font-size: 14px;
  color: #534a55;
  outline: none;
}

.search_box .search_name:focus {
  border-color: #be6b7c !important;
  box-shadow: 0 0 0 2px rgba(190, 107, 124, 0.1);
}

.search_box .search_button {
  display: inline-block;
  width: 25% !important;
  vertical-align: middle;
  margin-left: 2%;
  background-color: #be6b7c !important;
  color: #fff !important;
  border: none !important;
  border-radius: 2px !important;
  font-family: "Noto Serif JP", sans-serif !important;
  font-weight: 400 !important;
  font-size: 14px !important;
  letter-spacing: 2px;
  padding: 8px 0 !important;
  cursor: pointer;
  transition: all 0.3s ease;
}

.search_box .search_button:hover {
  background-color: #a85a6b !important;
}

.search_box .description {
  color: #9b93c7 !important;
  font-family: "Noto Serif JP", sans-serif !important;
  margin-top: 6px;
}

.search_sort_box.ranking_category_btn {
  background: none;
}

.listpage_icon ul {
  margin-top: 5px;
}



/* ------------------------------------------
   point_ranking (ポイントランキング)
   ------------------------------------------ */

/* タブエリア */
.point_sw .sw_box li,
.point_sw .sw_box li .pointranking,
.point_sw .sw_box li.before .prev_day:after,
.point_sw .sw_box li.before .prev_week:after,
.point_sw .sw_box li.before .prev_month:after,
.point_sw .sw_box li.before .day:after,
.point_sw .sw_box li.before .week:after,
.point_sw .sw_box li.before .month:after {
  font-family: "Noto Serif JP", serif !important;
  color: #534a55 !important;
}

.point_sw .sw_box li .pointranking.active {
  border: 2px #be6b7c solid !important;
  color: #be6b7c !important;
}

/* ランキング枠 */
.ranking_box ul {
  border-top: 1px solid #e6bfc9;
}

.ranking_box ul li {
  border-bottom: 1px solid #e6bfc9;
}

/* 変動アイコン */
.ranking_box ul li .fluctuation {
  font-family: "Noto Serif JP", serif;
}

.ranking_box ul li .fluctuation.up {
  color: #be6b7c;
}

.ranking_box ul li .fluctuation.stay {
  color: #9b93c7;
}

.ranking_box ul li .fluctuation.down {
  color: #7a7280;
}

.ranking_box ul li .fluctuation.new {
  background: #9b93c7;
  color: #fff;
}

/* 順位 */
.ranking_box ul li .ranking_number {
  color: #be6b7c;
  font-family: "Noto Serif JP", serif !important;
}

/* サムネ枠（no1/no2/no3 はそのまま） */
.ranking_box ul li .ranking_detail a {
  border: 3px #e6bfc9 solid;
}

/* 名前 */
.ranking_box ul li .ranking_name .r_name {
  color: #be6b7c !important;
  font-family: "Noto Serif JP", serif !important;
  font-weight: 500;
  letter-spacing: 1px;
}

/* エリアタグ */
.ranking_box ul li .ranking_name .ranking_area span {
  background: #9b93c7;
  font-family: "Noto Serif JP", serif;
}

/* ポイント */
.ranking_box ul li .ranking_point .r_point {
  color: #534a55;
}

.ranking_box ul li .ranking_point .r_point span {
  font-family: "Noto Serif JP", serif !important;
  color: #534a55;
}

.ranking_box ul li .ranking_point .r_point span i {
  color: #be6b7c;
}

/* トータルランキング */
.totalranking_title {
  background: #be6b7c;
}

.totalranking_title span {
  font-family: "Noto Serif JP", serif !important;
  letter-spacing: 2px;
}

.totalranking_area span {
  background: #9b93c7;
  font-family: "Noto Serif JP", serif;
}


/* ------------------------------------------
   reserve (予約フォーム) ※ LINE ボタンはグリーン維持
   ------------------------------------------ */

/* メールボタン */
.reserve_btn_mail {
  background: #d05a9c;
  color: #fff;
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
  letter-spacing: 2px;
  border-radius: 2px;
  transition: all 0.3s ease;
  border-radius: 10px;
}

.reserve_btn_mail:hover {
  background: #a85a6b;
}

/* LINEボタンはそのまま（変更しない） */

/* 必要項目フレーム */
.frame_inner {
  padding: 3px 25px 7px;
  background: #be6b7c !important;
  font-size: 20px;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  letter-spacing: 3px;
  border-radius: 4px;
}

.frame_inner::before {
  border-top-color: #be6b7c !important;
}

/* フォーマットのご説明フレーム */
.frame_inner.template {
  background: #9b93c7 !important;
}

.frame_inner.template::before {
  border-top-color: #9b93c7 !important;
}

/* 入力エリア */
.write_area {
  background: none;
}

.write_area_text textarea {
  border: 2px solid #e6bfc9;
  font-size: 14px;
  font-family: "Noto Serif JP", serif !important;
  color: #534a55;
  line-height: 1.9 !important;
  padding: 18px 4% !important;
}

.write_area_text textarea:focus {
  border-color: #be6b7c;
  outline: none;
}

/* リストをコピーするボタン */
.write_area_text button {
  width: 80%;
  background: #be6b7c;
  color: #fff;
  font-size: 18px;
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
  letter-spacing: 3px;
  border-radius: 4px;
  transition: all 0.3s ease;
}

.write_area_text button:hover,
.write_area_text button:focus {
  background: #a85a6b;
}

/* テンプレートテーブル */
.template_base {
  border: none;
}

.template_base li {
  background: #f1e4e4;
  border-bottom: 1px solid #e6bfc9;
}

.template_base li:nth-of-type(even) {
  background: #e5dcdc;
}

.template_base li:last-child {
  border-bottom: none;
}

.template_base li p:nth-of-type(even) {
  font-family: "Noto Sans JP", sans-serif;
  color: #534a55;
}

.template_base li p:nth-of-type(even) span {
  color: #be6b7c;
}

.template_base li p {
  padding: 18px 3% !important;
  color: #534a55;
  font-size: 12px;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  letter-spacing: 1px;
  line-height: 1.7;
  border-bottom: 3px solid #f5f3f2 !important;
  border-right: 3px solid #f5f3f2 !important;
}

.template_base li p:nth-of-type(even) {
  font-family: "Noto Serif JP", serif;
  font-size: 12px;
  line-height: 1.9;
  letter-spacing: 0.5px;
  border-right: none !important;
}

/* イントロ段落（h2 直後の<p>） */
.container_box section > h2 + p {
  line-height: 1.9 !important;
  letter-spacing: 1px;
  padding: 22px 4% !important;
  margin: 0 0 20px !important;
}

.container_box section > h2 + p > span {
  display: block;
}

.container_box section > h2 + p > span:first-child {
  font-family: "Noto Serif JP", serif;
  color: #be6b7c;
  letter-spacing: 2px;
  padding-bottom: 14px !important;
  margin-bottom: 10px;
  border-bottom: 1px solid #e6bfc9;
}

.container_box section > h2 + p > span:not(:first-child) {
  padding: 8px 0 !important;
  line-height: 1.9;
}

.container_box section > h2 + p > span > span[style*="color: red"],
.container_box section > h2 + p > span > span[style*="color:red"] {
  color: #be6b7c !important;
  font-weight: 500;
}

/* ==========================================================================
   口コミページ
   ========================================================================== */

.review_top {
  color: #be6b7c;
  font-family: "Noto Serif JP", serif;
  font-size: 14px;
  letter-spacing: 0.5px;
  line-height: 1.9;
  background: rgba(190, 107, 124, 0.04);
  border: 1px solid #e6bfc9;
  border-radius: 4px;
  padding: 14px 4%;
  margin: 0 auto 20px;
  width: 92%;
  box-sizing: border-box;
}

.review_top span {
  color: #534a55;
  font-family: "Noto Serif JP", serif;
  font-size: 12px;
  line-height: 1.8;
  letter-spacing: 0.5px;
  padding: 4px 2%;
}

#review .list ul li {
  border: 1px solid #e6bfc9;
  background: #FDFBF9;
  box-shadow: 0 2px 6px rgba(216, 166, 176, 0.15);
  padding: 12px;
  margin-bottom: 18px;
}

#review .list ul li .therapist_n {
  padding: 5px 4px 8px;
  border: none;
  margin-bottom: 8px;
}

#review .list ul li .therapist_n a {
  color: #be6b7c;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  letter-spacing: 1px;
}

#review .list ul li .therapist_n span {
  color: #7a7280;
  font-weight: 300;
}

#review .list ul li .review_data .review_box .wr_data {
  color: #9b93c7;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 1px;
  padding-bottom: 3px;
}

#review .list ul li .review_data .review_box .wr_data+span {
  color: #be6b7c;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
}

.review_name {
  color: #534a55;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
}

#review .list ul li .review_data .review_box .review_rate {
  font-family: "Noto Serif JP", serif;
  color: #534a55;
  margin-top: 3px;
}

#review .list ul li .review_data .review_box .review_rate .star {
  color: #e6bfc9;
}

#review .list ul li .review_data .review_box .review_rate .star .rated {
  color: #d4a96a;
}

#review .list ul li .review_data .review_box .review_score {
  color: #be6b7c;
  font-family: "Cormorant Garamond", serif;
  font-weight: 500;
  font-size: 120%;
  letter-spacing: 1px;
  margin-left: 4px;
}

#review .list ul li .review_data .review_box .type_icon span {
  background: #9b93c7;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-size: 11px;
  letter-spacing: 0.5px;
  padding: 2px 8px;
  border-radius: 2px;
}

/* span が空の場合は .type_icon ごと非表示 */
#review .list ul li .review_data .review_box .type_icon:has(span:empty) {
  display: none;
}

#review .list ul li .review_data .review_box .type_icon span:empty {
  display: none;
}

#review .list ul li .review_data .review_box .review_text {
  color: #534a55;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  line-height: 1.9;
  letter-spacing: 0.3px;
  margin-top: 10px;
  padding: 4px 2px;
  font-size: 13px;
}

#review .list ul li .review_data a.review_therapist_list {
  padding: 10px;
  background-color: #be6b7c;
  border-radius: 2px;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  letter-spacing: 1px;
  transition: all 0.3s ease;
  width: 70%;
}

.review_box .review_response {
  background-color: rgba(155, 147, 199, 0.08);
}

.review_box .review_response p {
  color: #be6b7c;
  font-family: "Noto Serif JP", serif;
}

p.list_page_count {
  margin: 20px 0 0;
  background-color: #FDFBF9;
  border: 1px solid #e6bfc9;
  color: #be6b7c;
  font-family: "Cormorant Garamond", serif;
  font-weight: 500;
  letter-spacing: 1px;
  border-radius: 2px;
}

.list_page_more {
  width: 95% !important;
  margin: 20px auto 10px auto;
  background: #DF5286 !important;
}

.list_page_more_ {
  width: 95% !important;
  background: #DF5286 !important;
  border-radius: 2px !important;
  transition: all 0.3s ease !important;
  margin-top: 30px !important;
  margin-bottom: 24px !important;
}

.list_page_more_:hover {
  background: #a85a6b !important;
  opacity: 1 !important;
}

.list_page_more_ a {
  font-family: "Noto Serif JP", serif !important;
  font-weight: 400 !important;
  letter-spacing: 2px !important;
}

.supplementary_text {
  color: #be6b7c;
  font-family: "Noto Serif JP", serif;
  font-weight: 300;
  line-height: 1.8;
  letter-spacing: 0.5px;
  margin: 18px auto;
  padding: 0 4%;
}

/* ==========================================================================
   写メ日記ページ（一覧）
   ========================================================================== */

#list_shamail {
  margin-top: 30px;
}

#list_shamail ul {
  padding: 0 2%;
  box-sizing: border-box;
  justify-content: flex-start;
  gap: 14px;
}

#list_shamail ul li {
  width: calc(50% - 7px);
  background: #f8f8f8;
  box-shadow: 0 3px 6px rgb(198 188 190 / 70%);
  padding-bottom: 12px;
  margin: 0;
}

/* 画像エリア（aspect ratio 解除して通常フローに） */
.list_shamail_image {
  max-height: none;
  max-width: none;
  overflow: visible;
}

.list_shamail_image:before {
  padding-top: 0;
}

.list_shamail_image_box {
  position: relative;
  height: 220px;
  overflow: hidden;
  background: rgba(155, 147, 199, 0.85);
}

/* 日付（画像下に通常フローで配置） */
.list_shamail_image p {
  width: 88%;
  position: static;
  background: transparent;
  color: #7a7280;
  font-size: 14px;
  font-weight: 400;
  font-family: "Cormorant Garamond", serif;
  letter-spacing: 1px;
  padding: 8px 10px 0;
  text-align: left;
  margin: 0;
}

/* タイトルエリア */
.listshamail_title {
  border: none;
  padding: 0 8px;
}

.listshamail_title h3 {
  margin: 2px 0;
}

.listshamail_title h3 a {
  color: #be6b7c;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 0.5px;
  padding: 2px 0;
  text-align: center;
}

.listshamail_title a {
  color: #be6b7c;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  text-decoration: none;
  letter-spacing: 0.5px;
  font-size: 12px;
  padding: 2px 0;
}

.listshamail_title a span {
  color: #7a7280;
  font-weight: 300;
  font-size: 11px;
}

/* 過去ログ・previous */
.previous {
  background: #be6b7c;
  border-radius: 2px;
}

.previous label {
  font-family: "Noto Serif JP", serif;
  letter-spacing: 1px;
}

.previous select {
  border: 1px solid #e6bfc9;
  font-family: "Noto Serif JP", serif;
  color: #534a55;
}

h4.list_photomailtitle {
  border-top: 1px solid #e6bfc9;
  border-bottom: 1px solid #e6bfc9;
  color: #be6b7c;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  letter-spacing: 2px;
}

.previous_area form select {
  border-color: #e6bfc9;
  font-family: "Noto Serif JP", serif;
  color: #534a55;
}

/* ==========================================================================
   写メ日記ページ（詳細）
   ========================================================================== */

#photomail_wrap h3.photo_title {
  color: #be6b7c;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  letter-spacing: 1px;
}

#photomail_wrap h3.photo_title span {
  color: #534a55;
  font-family: "Cormorant Garamond", serif;
}

#photomail_wrap h3.photo_title span a {
  color: #be6b7c;
}

#photomail_wrap .photomail_text_area {
  color: #534a55;
  font-family: "Noto Serif JP", serif;
  line-height: 1.9;
  letter-spacing: 0.3px;
}

#photomail_wrap .photomail_text_area a {
  color: #be6b7c;
}

/* CMS埋め込みのinline style背景を上書き */
#photomail_wrap .photomail_text_area > div {
  background: #f5f3f2 !important;
  color: #534a55 !important;
  padding: 16px 4%;
  border-radius: 2px;
}

/* 写メ日記詳細 - セラピスト情報カード */
.therapist_contents ul li {
  border: 1px solid #e6bfc9;
  background: #FDFBF9;
  box-shadow: 0 2px 6px rgba(216, 166, 176, 0.15);
  border-radius: 2px;
  margin: 10px auto 16px;
  width: 80%;
  float: none;
  box-sizing: border-box;
}

.therapist_contents ul li a {
  color: #534a55;
  font-family: "Noto Serif JP", serif;
  text-decoration: none;
  padding: 8px;
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

/* 子要素を固定幅にしてli幅変更でも縮まないように */
.therapist_listthum {
  width: 110px;
  float: none;
  flex: 0 0 110px;
}

.therapist_listthum img {
  max-width: 110px;
}

.therapist_listdata {
  width: auto;
  float: none;
  flex: 1;
  padding: 2px 0;
  line-height: 1.85;
  letter-spacing: 0.3px;
}

.therapist_listdata p {
  margin: 0 0 2px;
  color: #534a55;
  font-family: "Noto Serif JP", serif;
  font-size: 13px;
}

.therapist_listdata .therapist_listdata_name {
  color: #be6b7c;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 16px;
  letter-spacing: 1px;
  margin-bottom: 4px;
}

.therapist_listdata .therapist_listdata_title {
  color: #9b93c7;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  letter-spacing: 0.3px;
}

.therapist_listdata .syame_no {
  color: #be6b7c;
  font-family: "Cormorant Garamond", serif;
  font-weight: 500;
  letter-spacing: 1px;
  margin-left: 4px;
}

#photomail_wrap #photomail_pagelist {
  border-top: 1px solid #e6bfc9;
}

#photomail_wrap #photomail_pagelist .pr_next_btn {
  background-color: #be6b7c;
  font-family: "Noto Serif JP", serif;
  letter-spacing: 1px;
  border-radius: 2px;
}

/* ==========================================================================
   よくあるQ&Aページ
   ========================================================================== */

.howto_top {
  width: 94%;
  font-family: "Noto Serif JP", serif;
  color: #534a55;
  line-height: 1.9;
  letter-spacing: 0.3px;
  padding: 14px;
  font-size: 14px;
}

.otherRed {
  color: #be6b7c;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 13px;
  padding-top: 12px;
}

.howto_title {
  font-family: "Noto Serif JP", serif;
  color: #be6b7c;
  border-bottom: 1px solid #e6bfc9;
  letter-spacing: 2px;
  font-weight: 400;
}

/* baseの .howto_area span { color:#4169e1; font-weight:bold; } を中和 */
.howto_area span {
  color: inherit;
  font-weight: inherit;
}

.howto_base {
  padding: 10px 0 0;
}

.howto_base li {
  width: 100%;
  font-family: "Noto Serif JP", serif;
  font-size: 14px;
  line-height: 1.9;
}

.howto_base li:nth-of-type(even) {
  background: #F9F3F5;
  margin-bottom: 12px;
}

.howto_base li span,
.howto_base li:nth-of-type(even) span {
  padding: 10px 10px 10px 0;
}

.howto_base li span .question {
  padding: 4px;
  background: #be6b7c;
  font-size: 17px;
  font-family: "Cormorant Garamond", serif;
  font-weight: 500;
  letter-spacing: 0.5px;
  border-radius: 2px;
  color: #fff;
}

.howto_base li:nth-of-type(even) span .answer {
  padding: 3px 8px;
  background: #9b93c7;
  font-size: 17px;
  font-family: "Cormorant Garamond", serif;
  font-weight: 500;
  letter-spacing: 0.5px;
  border-radius: 2px;
  color: #fff;
}

.howto_base li span:nth-of-type(2) {
  width: 95%;
  padding: 10px 0px 10px 15px;
  color: #534a55;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  letter-spacing: 0.3px;
  font-size: 14px;
}

.howto_base li:nth-of-type(even) span:nth-of-type(2) {
  padding: 10px 0 10px 22px;
  color: #534a55;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-size: 13px;
  line-height: 1.9;
}

.howto_text {
  font-family: "Noto Serif JP", serif;
  color: #534a55;
  line-height: 1.9;
  letter-spacing: 0.3px;
}

.howto_text span {
  color: #be6b7c;
}

/* ==========================================================================
   お問い合わせフォーム (mail_form)
   ========================================================================== */

form#mail_form {
  background: #FDFBF9;
  font-family: "Noto Serif JP", serif;
  color: #534a55;
  line-height: 1.9;
  border: 1px solid #e6bfc9;
  padding: 6px 0 24px;
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(216, 166, 176, 0.15);
  margin: 30px auto;
}

form#mail_form dl {
  border-bottom: 1px solid #e6bfc9;
}

form#mail_form dl:last-of-type {
  border-bottom: none;
}

form#mail_form dl dt {
  color: #be6b7c;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  letter-spacing: 1px;
  font-size: 14px;
  position: relative;
}

form#mail_form dl dd {
  color: #534a55;
  font-family: "Noto Serif JP", serif;
}

/* 必須マーカー */
form#mail_form dl:has(dd.required) dt::after {
  content: "必須";
  display: inline-block;
  margin-left: 10px;
  padding: 2px 7px;
  background: #be6b7c;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 10px;
  letter-spacing: 1px;
  border-radius: 2px;
  vertical-align: middle;
}

/* テキスト系入力 */
form#mail_form input[type="text"],
form#mail_form input[type="email"],
form#mail_form input[type="tel"],
form#mail_form textarea,
form#mail_form select {
  background: #fff;
  border: 1px solid #e6bfc9;
  border-radius: 2px;
  font-family: "Noto Serif JP", serif;
  color: #534a55;
}

form#mail_form input[type="text"]:focus,
form#mail_form input[type="email"]:focus,
form#mail_form input[type="tel"]:focus,
form#mail_form textarea:focus {
  box-shadow: 0 0 6px rgba(190, 107, 124, 0.35);
  border: 1px solid #be6b7c;
  background: #fff;
}

/* チェックボックス・ラジオラベル */
form#mail_form ul li label {
  background: rgba(190, 107, 124, 0.05);
  border: 1px solid #e6bfc9;
  border-radius: 2px;
  font-family: "Noto Serif JP", serif;
  color: #534a55;
  letter-spacing: 0.5px;
}

form#mail_form ul li label:hover {
  background: rgba(190, 107, 124, 0.12);
}

/* エラーメッセージ */
form#mail_form dl dd span.error_blank,
form#mail_form dl dd span.error_format,
form#mail_form dl dd span.error_match {
  color: #be6b7c;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
}

/* 送信ボタン */
form#mail_form input[type="button"] {
  background: #be6b7c;
  border: 1px solid #be6b7c;
  border-radius: 2px;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  letter-spacing: 3px;
  padding: 12px 40px;
  font-size: 15px;
  transition: all 0.3s ease;
}

form#mail_form input[type="button"]:hover {
  background: #a85a6b;
  border: 1px solid #a85a6b;
}

/* ==========================================================================
   セラピスト詳細ページ
   inline <style>がCSS後に読まれるため、競合する箇所は !important
   ========================================================================== */

/* --- プロフィール --- */
.detail_profile h1 {
  color: #534a55;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  border: none;
  letter-spacing: 1.5px;
}

.detail_profile h1 span:first-child {
  color: #be6b7c;
}

.detail_profile_name {
  color: #be6b7c;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  letter-spacing: 1.5px;
}

.detail_profile p {
  color: #534a55;
  font-family: "Noto Serif JP", serif;
  border: none;
  letter-spacing: 0.5px;
}

.detail_profile p:nth-of-type(2) {
  color: #9b93c7;
}

.detail_profile p:nth-of-type(2) span a {
  color: #9b93c7;
}

/* --- タグ(性感テクニック等) --- */
.detail_icon ul li {
  background: #9b93c7 !important;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  letter-spacing: 0.5px;
  border-radius: 2px;
}

/* --- ナビゲーションボタン (inline style #ccc を上書き) --- */
.detail_contents_btn li,
.detail_contents_btn li.detail_schedule,
.detail_contents_btn li.detail_photomail,
.detail_contents_btn li.detail_event,
.detail_contents_btn li.detail_evaluation {
  background: #be6b7c !important;
  border-radius: 2px !important;
}

.detail_contents_btn li a {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  letter-spacing: 1px;
}

.detail_contents_btn li a span::after {
  border-top: 1px solid rgba(255, 255, 255, 0.6) !important;
}

/* --- 外部リンクボタン (Twitter等) --- */
.detail_contents_btn2 li,
.detail_contents_btn2 li.detail_x,
.detail_contents_btn2 li.detail_movie,
.detail_contents_btn2 li.detail_twicasu,
.detail_contents_btn2 li.detail_myevent {
  background: #be6b7c !important;
  border-radius: 2px !important;
}

.detail_contents_btn2 li a {
  font-family: "Noto Serif JP", serif;
  letter-spacing: 1px;
}

.detail_contents_btn2 li a span::after {
  border-top: 1px solid rgba(255, 255, 255, 0.6) !important;
}

/* --- コメントセクション(お店から/セラピストから) --- */
.detail_comment_container h3 {
  background: #be6b7c;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  letter-spacing: 1.5px;
  border-radius: 2px 2px 0 0;
}

.shop_comment {
  border: none;
  background: #FDFBF9;
  font-family: "Noto Serif JP", serif;
  color: #534a55;
  line-height: 1.9;
  border-radius: 0 0 2px 2px;
}

/* --- 共通コンテナh3 --- */
.detail_container h3 {
  background: #be6b7c;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  letter-spacing: 1.5px;
  border-radius: 2px 2px 0 0;
}

/* --- セラピストに質問 (Q&A) --- */
.detail_container_box {
  border: none;
}

.detail_container_box ul {
  border: none;
}

.detail_container_box ul:nth-of-type(even) {
  background: rgba(190, 107, 124, 0.06);
}

.detail_container_box .question {
  font-family: "Noto Serif JP", serif;
  color: #534a55;
}

.detail_container_box .question:before {
  color: #9b93c7;
  font-family: "Cormorant Garamond", serif;
}

.detail_container_box .answer {
  font-family: "Noto Serif JP", serif;
  color: #534a55;
  font-weight: 500;
}

.detail_container_box .answer:before {
  color: #be6b7c;
  font-family: "Cormorant Garamond", serif;
}

/* --- 可能プレイ --- */
.shop_option {
  border: none;
  background: #FDFBF9;
  border-radius: 0 0 2px 2px;
}

/* --- 出勤表 --- */
#pfschedule {
  border: none;
  background: #FDFBF9;
  margin-bottom: 3px;
}

#pfschedule li {
  color: #534a55;
  font-family: "Noto Serif JP", serif;
  border: none;
  background: rgba(190, 107, 124, 0.06);
  margin-bottom: 3px;
  font-size: 14px;
}

#pfschedule li:nth-child(2n) {
  background: rgba(190, 107, 124, 0.06);
  color: #534a55;
  padding-left: 10px;
}

#pfschedule li.week_blue:nth-child(2n) {
  background: #9b93c7;
  color: #fff;
}

#pfschedule li.week_red:nth-child(2n) {
  background: #be6b7c;
  color: #fff;
}

.listday_btn {
  background: #be6b7c;
  border-radius: 2px;
  font-family: "Noto Serif JP", serif;
  width: 45px;
  font-size: 11px;
  right: 4%;
}

/* --- 予約状況 --- */
.day_select select {
  margin: 0 auto 10px;
  padding: 6px;
  background: rgba(190, 107, 124, 0.06);
  border: none;
  font-family: "Noto Serif JP", serif;
  color: #534a55;
  border-radius: 0;
  font-size: 20px;
}

.day_time_title {
  border: none;
}

.day_time_title span {
  color: #be6b7c;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  letter-spacing: 1px;
  font-size: 20px;
}

.list_schedule_time {
  border: none;
}

.list_schedule_time li {
  border-bottom: 1px solid #e6bfc9;
}

.list_schedule_time li .list_schedule_timebox {
  background: #FDFBF9;
  color: #534a55;
  font-family: "Cormorant Garamond", serif;
  font-weight: 500;
}

.list_schedule_time li .feasible {
  background: #be6b7c !important;
  font-family: "Noto Serif JP", serif;
}

.list_reserve_caution {
  background: rgba(190, 107, 124, 0.1);
  color: #534a55;
  font-family: "Noto Serif JP", serif;
  letter-spacing: 0.3px;
  border-radius: 2px;
}

/* --- 口コミ(お客様の声) --- */
.list_reserve_box {
  color: #534a55;
  font-family: "Noto Serif JP", serif;
  line-height: 1.9;
}

.posted_reviews {
  border-top: 1px solid #e6bfc9;
  border-bottom: none;
}

.posted_reviews a {
  background: #be6b7c;
  border-radius: 2px;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
}

.posted_reviews .reviews_day {
  color: #9b93c7;
  font-family: "Cormorant Garamond", serif;
  font-weight: 400;
  letter-spacing: 1px;
}

.posted_reviews span {
  color: #be6b7c;
  font-family: "Noto Serif JP", serif;
}

.evaluation {
  font-family: "Noto Serif JP", serif;
  color: #534a55;
}

.evaluation .star {
  color: #e6bfc9;
}

.evaluation .star .rate {
  color: #d4a96a;
}

/* inline styleで色設定されていないが、念のため */
.posted_reviews .review_score {
  color: #be6b7c;
  font-family: "Cormorant Garamond", serif;
  font-weight: 500;
  font-size: 130%;
  letter-spacing: 1px;
}

/* inline styleで background:#ff6347 設定されているため !important */
.posted_reviews .view_icon,
.view_icon {
  background: #9b93c7 !important;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  letter-spacing: 0.5px;
  border-radius: 2px;
  padding: 3px 10px;
  font-size: 11px;
}

.posted_reviews .review_text {
  color: #534a55;
  font-family: "Noto Serif JP", serif;
  line-height: 1.9;
  letter-spacing: 0.3px;
}

/* --- セラピスト詳細内 写メ日記セクション (#common_shamail) --- */
#common_shamail {
  border: none;
  background: #f5f3f2;
  border-radius: 0 0 2px 2px;
  margin-top: 30px;
  padding-bottom: 12px;
}

/* shamail を含む detail_container のマージン調整 */
.detail_container#shamail {
  margin: 30px auto 5px auto;
}

#common_shamail ul {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  padding: 8px 2%;
  box-sizing: border-box;
  justify-content: flex-start;
}

#common_shamail ul li {
  border: none;
  background: #f8f8f8;
  box-shadow: 0 3px 6px rgba(216, 166, 176, 0.3);
  padding-bottom: 6px;
  width: calc(50% - 7px);
  margin: 0;
  float: none;
}

.common_shamail_image_box {
  background: rgba(155, 147, 199, 0.85);
}

/* 画像下の日付バンド: ピンク帯→透明にして淡色テキストに */
#common_shamail .common_shamail_image p {
  background: transparent;
  color: #7a7280;
  font-family: "Cormorant Garamond", serif;
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 1px;
  padding: 8px 10px 0;
  text-align: left;
  margin: 0;
  float: none;
}

/* タイトルセクション: 枠線除去、テキストをローズ・センター寄せ */
#common_shamail .shamail_title {
  border: none;
  padding: 0 8px;
  text-align: center;
}

#common_shamail .shamail_title h4 {
  margin: 4px 0 2px;
}

#common_shamail .shamail_title h4 a {
  color: #be6b7c;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 13px;
  padding: 2px 0;
  text-decoration: none;
  letter-spacing: 0.5px;
}

#common_shamail .shamail_title a {
  color: #be6b7c;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  text-decoration: none;
  letter-spacing: 0.5px;
  font-size: 12px;
  padding: 2px 0;
}

#common_shamail .shamail_title a span {
  color: #7a7280;
  font-weight: 300;
  font-size: 11px;
}

.shamail_title h4 a {
  color: #be6b7c;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
}

/* --- Flickity スライダー (緑→ローズ) --- */
.flickity-button {
  background: #be6b7c !important;
  color: #fff !important;
}

.flickity-button:hover {
  background: #a85a6b !important;
}

.flickity-button .flickity-button-icon {
  fill: #fff;
}

.flickity-page-dots .dot {
  background: #d8a6b0;
  opacity: 0.6;
}

.flickity-page-dots .dot.is-selected {
  background: #be6b7c;
  opacity: 1;
}

/* --- shop_comment内のspanフォントサイズ --- */
.shop_comment span {
  font-size: 16px !important;
}

/* --- common_enter フォント --- */
.common_enter,
.common_enter a {
  font-family: "Noto Serif JP", serif;
}

/* ==========================================================================
   前日予約状況ページ (reservations)
   ========================================================================== */

/* search_title 色は上部共通セクション (~line 504) に委ねる */

.search_btn_inner {
  border: 1px solid #e6bfc9;
  border-radius: 0 0 2px 2px;
  background: #FDFBF9;
}

.search_btn_inner_bg .searchname {
  color: #875e36;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  letter-spacing: 1px;
}

.search_btn_inner_bg .item ul {
  border-bottom: 1px solid #BE9C91 !important;
}

.search_btn_inner_bg .item ul.therapist_searc {
  border-bottom: 1px solid #e6bfc9;
}

.search_btn_inner_bg .item ul li label,
.search_btn_inner_bg .item ul.therapist_searc li label {
  background: #a3876b;
  color: #fff;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  letter-spacing: 0.3px;
  border-radius: 2px;
}

.search_btn_inner_bg .item ul li input:checked + label,
.search_btn_inner_bg .item ul.therapist_searc li input:checked+label {
  background: #534a55;
}

.start_search input {
  background: #875e36;
  border-radius: 2px;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  letter-spacing: 2px;
  padding: 10px 0;
}

/* --- 並び替えバー (scheduleページと統一 → 上部共通セクションに委ねる) --- */

/* --- カード --- */
.listpage_style_reservation {
  border-bottom: none;
  background: #FDFBF9;
}

.listpage_profile_name {
  color: #be6b7c;
  font-size: 18px;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  letter-spacing: 1px;
}

.listpage_profile_spec {
  display: block;
  width: 100%;
  margin-bottom: 5px;
  color: #534a55;
  font-family: "Noto Serif JP", serif;
  clear: both;
}

/* タグ — spec の下に2段表示 */
.reselist_icon {
  display: block;
  width: 100%;
  clear: both;
  float: none;
  margin: 8px 0 0 !important;
}

.reselist_icon ul {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  padding: 0;
  list-style: none;
  margin: 0;
}

/* 全 li を統一(base CSS の li:last-of-type margin:0 を打ち消す) */
.reselist_icon ul li,
.reselist_icon li:last-of-type {
  width: 22%;
  height: auto;
  background: #9b93c7;
  color: #fff;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  letter-spacing: 0.3px;
  border-radius: 2px;
  font-size: 11px;
  line-height: 1.6;
  text-align: center;
  box-sizing: border-box;
  padding: 0;
  margin: 0;
  float: none;
  display: block;
  vertical-align: top;
}

.list_reservation_time {
  border-top: 1px solid #e6bfc9;
  border-left: 1px solid #e6bfc9;
  border-right: 1px solid #e6bfc9;
}

.list_reservation_time li {
  border-bottom: 1px solid #e6bfc9;
}

.list_reservation_timebox {
  background: #FDFBF9;
  color: #534a55;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
}

.reservation_feasible {
  padding: 6px 0;
  background: #be6b7c;
  font-family: "Noto Serif JP", serif;
}

.reservation_feasible span {
  font-size: 14px;
  font-family: "Noto Serif JP", serif;
}

.reservation_feasible a {
  color: #fff;
  font-family: "Noto Serif JP", serif;
  letter-spacing: 0.5px;
}

/* --- 求人ページ (recruit) --- */
/* セラピスト募集要項 — ローズテーマに統一 */
.recruit_container_box {
  background-color: #f5f3f2;
  background-image: url("../img/bg_tkjm_logo_720.png");
  background-repeat: no-repeat;
  background-position: center top;
  background-size: 100% auto;
  position: relative;
  margin: 15px auto;
  padding: 30px 0 20px;
  border: none;
  box-shadow: none;
  overflow: hidden;
}

.recruit_container_box::before {
  content: "";
  position: absolute;
  inset: 0;
  background-color: rgba(245, 243, 242, 0.85);
  pointer-events: none;
  z-index: 0;
}

.recruit_container_box > * {
  position: relative;
  z-index: 1;
}

/* 求人ページ ショップタイトル */
.recruit_container_box .ceo_message h2 {
  text-align: center;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 24px;
  letter-spacing: 6px;
  color: #be6b7c;
  margin: 0 auto 25px;
  padding: 0;
  border: none;
  width: auto;
  background: none;
  box-shadow: none;
  height: auto;
  line-height: 1.4;
}

/* 代表からの一言 */
.ceo_message {
  width: 92%;
  margin: 10px auto 35px;
  padding: 0 5px;
  text-align: left;
}

.ceo_message_title {
  text-align: center;
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
  font-size: 18px;
  letter-spacing: 4px;
  color: #534a55;
  margin: 0 auto 20px;
  padding-bottom: 14px;
  position: relative;
}

.ceo_message_title:after {
  content: "";
  display: block;
  width: 70px;
  height: 1px;
  background: #a3876b;
  margin: 14px auto 0;
}

.ceo_message p {
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
  font-size: 13px;
  line-height: 2;
  color: #534a55;
  letter-spacing: 0.5px;
  margin: 0 0 18px;
}

.ceo_message p:last-child {
  margin-bottom: 0;
}

/* セラピスト募集要項 見出し */
.recruit_container_box h2 {
  width: 92%;
  margin: 0 auto 20px;
  background: #be6b7c;
  color: #fff;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  letter-spacing: 3px;
  font-size: 16px;
  height: 40px;
  line-height: 40px;
  padding: 0;
  border: none;
  box-shadow: 0 2px 6px rgba(190, 107, 124, 0.2);
}

.recruit_container_box h2 span {
  font-family: "Noto Serif JP", serif;
}

/* セラピスト募集要項 テーブル — SP縦積みレイアウト */
.recruit_container_box table {
  width: 92%;
  margin: 0 auto;
  padding: 0;
  color: #534a55;
  border-top: 1px solid #d8a6b0;
  border-left: 1px solid #d8a6b0;
  border-right: 1px solid #d8a6b0;
  border-collapse: separate;
  border-spacing: 0;
}

.recruit_container_box table tbody {
  display: block;
}

.recruit_container_box table tr {
  display: block;
  background: #fff;
  border-bottom: 1px solid #d8a6b0;
}

.recruit_container_box table tr:nth-of-type(even) {
  background: #F9F3F5;
}

.recruit_container_box table th {
  width: 92%;
  display: block;
  float: none;
  padding: 12px 15px 6px;
  text-align: left;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  letter-spacing: 2px;
  font-size: 14px;
  color: #be6b7c;
  border: none;
}

.recruit_container_box table td {
  width: 92%;
  display: block;
  float: none;
  padding: 0 15px 14px;
  text-align: left;
  font-family: "Noto Serif JP", serif;
  font-weight: 300;
  font-size: 13px;
  line-height: 1.8;
  color: #534a55;
  border: none;
}

.recruit_container_box table tr:last-child td {
  border: none;
}

.recruit_item .recruit_entry {
  background: none;
}

/* 内勤スタッフ募集要項 */
.recruit_container_box2 {
  background: none;
  margin: 0 auto 15px;
  padding: 0 0 30px;
  max-width: 640px;
  border: none;
  box-shadow: none;
}

.recruit_container_box2 h2 {
  width: 92%;
  margin: 0 auto 20px;
  background: #be6b7c;
  color: #fff;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  letter-spacing: 3px;
  font-size: 16px;
  height: 40px;
  line-height: 40px;
  padding: 0;
  border: none;
  box-shadow: 0 2px 6px rgba(190, 107, 124, 0.2);
}

.recruit_container_box2 h2 span {
  font-family: "Noto Serif JP", serif;
}

.recruit_container_box2 table {
  width: 92%;
  margin: 0 auto;
  padding: 0;
  color: #534a55;
  border-top: 1px solid #d8a6b0;
  border-left: 1px solid #d8a6b0;
  border-right: 1px solid #d8a6b0;
  border-collapse: separate;
  border-spacing: 0;
}

.recruit_container_box2 table tbody {
  display: block;
}

.recruit_container_box2 table tr {
  display: block;
  background: #fff;
  border-bottom: 1px solid #d8a6b0;
}

.recruit_container_box2 table tr:nth-of-type(even) {
  background: #F9F3F5;
}

.recruit_container_box2 table th {
  width: 92%;
  display: block;
  float: none;
  padding: 12px 15px 6px;
  text-align: left;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  letter-spacing: 2px;
  font-size: 14px;
  color: #be6b7c;
  border: none;
}

.recruit_container_box2 table td {
  width: 92%;
  display: block;
  float: none;
  padding: 0 15px 14px;
  text-align: left;
  font-family: "Noto Serif JP", serif;
  font-weight: 300;
  font-size: 13px;
  line-height: 1.8;
  color: #534a55;
  border: none;
}

.recruit_container_box2 table tr:last-child td {
  border: none;
}

.recruit_container_box2 table td font[color="#ff0000"] {
  color: #be6b7c !important;
}

.recruit_container_box2 .recruit_entry2 {
  margin: 40px auto 0 auto;
  background: none;
}

.recruit_item .frame_inner {
  margin-left: 20px;
}

.recruit_item .frame_inner template {
  background: #be6b7c;
}

/* --- 年齢確認ページ (index) --- */
#wrapper {
  background: #f5f3f2;
}

#splash {
  background: #f5f3f2;
}

.index_main_area #header_logo {
  background: #f5f3f2;
}

.index_main_area .header_logo_image span {
  display: none;
}

.index_main_area .header_call_text {
  font-family: "Noto Serif JP", serif;
  margin: 0 auto 5px;
}

.header_call_number {
  color: #be6b7c;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
}

.header_call_number a {
  color: #be6b7c;
}

.header_call_number:before {
  content: "TEL";
  color: #be6b7c;
  font-size: 14px;
  margin-right: 4px;
  letter-spacing: 1px;
}

.index_main_area .top_hours {
  color: #534a55;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
}

.index_main_area .top_hours:before {
  color: #534a55;
}

#index_enter {
  margin: 10px auto 20px;
}

#index_enter p {
  color: #be6b7c;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 1px;
  line-height: 1.6;
}

.index_main_area #index_leave {
  background: #888;
  border-radius: 90px;
  font-family: "Noto Serif JP", serif;
  letter-spacing: 1px;
  margin: 18px auto 12px;
  padding: 8px;
}

#seo_text {
  background: rgba(190, 107, 124, 0.06);
  border: 1px solid rgba(216, 166, 176, 0.4);
  border-radius: 4px;
}

#seo_text h4,
#seo_text h5 {
  margin: 10px auto 15px auto;
  color: #be6b7c;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  letter-spacing: 1.5px;
  text-align: center;
}

#seo_text p {
  color: #534a55;
  font-family: "Noto Serif JP", serif;
  font-weight: 300;
  line-height: 1.8;
}

.index_main_area footer {
  background: #534a55;
}

.index_main_area .footer_information {
  background: none;
  border-top: 1px solid #7a7280;
}

.index_main_area .footer_information h2 {
  color: #fff;
  font-family: "Noto Serif JP", serif;
  font-weight: 300;
  letter-spacing: 2px;
}

.index_main_area .footer_information p {
  color: #fff;
  font-family: "Noto Serif JP", serif;
  font-weight: 300;
  letter-spacing: 1px;
}

.index_main_area .pc_web {
  background: #fff;
  color: #be6b7c;
  font-family: "Noto Serif JP", serif;
  border-radius: 2px;
}

.index_main_area .copy {
  background: #534a55;
  color: rgba(255, 255, 255, 0.6);
}

.index_main_area .copy a {
  color: rgba(255, 255, 255, 0.6);
}

.index_main_area .scroll_top_area {
  background: #f5f3f2;
}

.index_main_area .scroll_top_area p#page-top {
  background: #be6b7c;
}

#common_shamail .shamail_title {
  padding: 0 8px;
  border: none;
}

#common_shamail .shamail_title div {
  height: auto;
  margin: 0;
}

#common_shamail .shamail_title p {
  padding: 4px 4px 0;
  font-size: 12px;
}

#common_shamail .shamail_title h4 {
  margin: 2px 0;
}

#common_shamail .shamail_title h4 a {
  padding: 2px 0;
  display: block;
  font-size: 13px;
}

#common_shamail .shamail_title a {
  padding: 2px 0;
  font-size: 12px;
}

/* ============================================
   前日予約 (reservations) - 縦型カードレイアウト
   画像を上部にフル幅、情報を下に中央寄せ
   ============================================ */

.list_wrap > ul.clearfix {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 4px 4px 10px;
  margin: 0;
  list-style: none;
  overflow: visible;
}

.listpage_style_reservation {
  float: none;
  width: 100%;
  margin: 0;
  padding: 14px 14px 30px;
  background: #FDFBF9;
  box-shadow: 0 3px 6px rgba(216, 166, 176, 0.3);
  box-sizing: border-box;
}

.listpage_style_reservation a {
  display: block;
  position: relative;
}

/* 画像 — 上部・フル幅 */
.listpage_style_reservation_image {
  float: none;
  width: 100%;
  margin: 0 0 12px;
  text-align: center;
}

.listpage_style_reservation_image img {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
}

/* プロフィール — 下部・中央寄せ */
.listpage_profile_reservation {
  float: none;
  width: 100%;
  padding: 0;
  text-align: center;
}

.listpage_style_reservation .listpage_profile_name {
  font-size: 24px;
  margin: 6px 0 6px;
  text-align: center;
}

.listpage_style_reservation .listpage_profile_spec {
  display: block;
  width: 100%;
  text-align: center;
  font-size: 14px;
  color: #534a55;
  margin: 0 0 10px;
}

/* タグ — 1行中央寄せ */
.listpage_style_reservation .listpage_icon {
  width: 100%;
  margin: 8px 0 10px;
  float: none;
}

.listpage_style_reservation .listpage_icon ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 5px;
  padding: 0;
  margin: 0;
  list-style: none;
}

.listpage_style_reservation .listpage_icon ul li {
  width: auto;
  height: auto;
  padding: 4px 10px;
  margin: 0;
  background: #9b93c7;
  color: #fff;
  border-radius: 2px;
  font-size: 11px;
  letter-spacing: 0.3px;
  font-weight: 400;
  display: inline-block;
  float: none;
  line-height: 1.6;
}

/* 時間タイトル */
.listpage_style_reservation .day_time_title {
  text-align: center;
  margin: 10px 0 8px;
  border: none;
  padding: 0;
}

.listpage_style_reservation .day_time_title span {
  color: #be6b7c;
  font-size: 17px;
  letter-spacing: 0.5px;
}

.listpage_style_reservation .day_time_title i {
  color: #be6b7c;
  margin-right: 6px;
}

/* 予約欄 */
.listpage_style_reservation .list_reservation_time {
  width: 100%;
  margin-top: 4px;
}

/* --- 口コミページ (review) --- */
#review h3 {
  width: 100%;
  margin: 15px 0 25px;
  background: #be6b7c;
  color: #fff;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  letter-spacing: 2px;
  height: auto;
  line-height: 1.5;
  padding: 10px 0;
  text-indent: 12px;
  font-size: 16px;
}

#review .list ul li.review_therapist_li {
  border-bottom: none;
  background: #FDFBF9;
  padding: 4px 0;
  margin-bottom: 20px;
  box-shadow: 0 2px 6px rgba(216, 166, 176, 0.12);
}

#review .list ul li.review_therapist_li .review_data {
  width: 92%;
  padding: 16px 16px;
}

#review .list ul li .review_data .review_box .wr_data {
  color: #9b93c7;
  font-family: "Cormorant Garamond", "Noto Serif JP", serif;
  font-weight: 400;
  font-size: 16px;
  letter-spacing: 1px;
  padding-bottom: 4px;
}

#review .list ul li .review_data .review_box .wr_data + span {
  color: #be6b7c;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 16px;
  letter-spacing: 1.5px;
}

.review_name {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  color: #be6b7c;
}

#review .list ul li .review_data .review_box .review_rate {
  margin: 6px 0 4px;
  color: #534a55;
  font-size: 12px;
}

#review .list ul li .review_data .review_box .review_rate .star {
  color: #e6bfc9;
  letter-spacing: 2px;
}

#review .list ul li .review_data .review_box .review_rate .star .rated {
  color: #c4a882;
}

#review .list ul li .review_data .review_box .review_score {
  color: #be6b7c;
  font-family: "Cormorant Garamond", "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 18px;
  margin-right: 10px;
}

#review .list ul li .review_data .review_box .type_icon span {
  background: #9b93c7;
  color: #fff;
  border-radius: 2px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  letter-spacing: 0.5px;
  padding: 2px 8px;
  font-size: 11px;
}

#review .list ul li .review_data .review_box .review_text {
  color: #534a55;
  font-family: "Noto Serif JP", serif;
  font-weight: 300;
  line-height: 1.9;
  margin-top: 10px;
  font-size: 14px;
  letter-spacing: 0.3px;
}

.review_box .review_response {
  background-color: rgba(190, 107, 124, 0.08);
  border-radius: 4px;
  padding: 12px 14px;
}

.review_box .review_response p {
  background: #fff;
  color: #be6b7c;
  font-family: "Noto Serif JP", serif;
  font-weight: 300;
  border-radius: 4px;
  padding: 6px 10px;
}

/* ページネーション・もっと見る・戻るボタン */
p.list_page_count {
  background: #FDFBF9;
  border: 1px solid #d8a6b0;
  border-radius: 0;
  color: #be6b7c;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  letter-spacing: 2px;
  padding: 10px;
  font-size: 14px;
}

.list_page_more {
  background: #be6b7c;
  border-radius: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  letter-spacing: 3px;
  padding: 12px;
  font-size: 15px;
  box-shadow: 0 2px 6px rgba(190, 107, 124, 0.2);
}

.list_page_more a {
  color: #fff;
}

.therapist_detailpage {
  background: #FDFBF9;
  border: 1px solid #be6b7c;
  border-radius: 0;
  color: #be6b7c;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  letter-spacing: 2px;
  padding: 12px;
  font-size: 14px;
}

.therapist_detailpage a {
  color: #be6b7c;
}

/* ==========================================================================
   口コミ投稿フォーム (review_post) — mail_formと同じトーン
   ========================================================================== */
.review_post {
  font-family: "Noto Serif JP", serif;
  color: #534a55;
}

.review_post .post_text {
  background: #be6b7c;
  color: #fff;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  letter-spacing: 1px;
  padding: 10px 2%;
  font-size: 13px;
  border-radius: 0;
  box-shadow: 0 2px 6px rgba(190, 107, 124, 0.2);
}

.review_post .post_box {
  background: #FDFBF9;
  border: 1px solid #e6bfc9;
  border-radius: 4px;
  box-shadow: 0 2px 10px rgba(216, 166, 176, 0.15);
  padding: 6px 0 24px;
  margin-top: 14px;
  line-height: 1.9;
}

.review_post .post_box .input_post {
  background: transparent;
  border-bottom: 1px solid #e6bfc9;
  padding: 14px 16px;
}

.review_post .post_box .input_post:last-of-type {
  border-bottom: none;
}

.review_post .post_box .input_post p.username {
  color: #be6b7c;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 1px;
}

.review_post .post_box .input_post p.username span {
  display: inline-block;
  margin-left: 10px;
  padding: 2px 7px;
  background: #be6b7c;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 10px;
  letter-spacing: 1px;
  border-radius: 2px;
  vertical-align: middle;
}

.review_post .post_box .input_post p.input,
.review_post .post_box .input_post p.area {
  width: 100%;
  text-align: left;
  padding: 6px 0 0;
}

.review_post .post_box .input_post p.input input,
.review_post .post_box .input_post p.input select,
.review_post .post_box .input_post p.area textarea {
  background: #fff;
  border: 1px solid #e6bfc9;
  border-radius: 2px;
  font-family: "Noto Serif JP", serif;
  color: #534a55;
  font-size: 14px;
  padding: 9px 12px;
}

.review_post .post_box .input_post p.input input {
  width: 100%;
  box-sizing: border-box;
}

.review_post .post_box .input_post p.input select {
  background: #fff;
}

.review_post .post_box .input_post p.input select.date {
  width: 32%;
}

.review_post .post_box .input_post p.area textarea {
  width: 100%;
  box-sizing: border-box;
  line-height: 1.7;
  resize: vertical;
}

.review_post .post_box .input_post p.input input:focus,
.review_post .post_box .input_post p.input select:focus,
.review_post .post_box .input_post p.area textarea:focus {
  outline: none;
  box-shadow: 0 0 6px rgba(190, 107, 124, 0.35);
  border: 1px solid #be6b7c;
}

.review_post .post_box .input_post p.post_coution {
  color: #be6b7c;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 11px;
  letter-spacing: 0.3px;
  margin-bottom: 4px;
}

.review_post .post_box .submit {
  width: 100%;
  text-align: center;
  margin-top: 18px;
  padding: 0;
}

.review_post .post_box .submit .formbtn {
  background: #be6b7c;
  border: 1px solid #be6b7c;
  border-radius: 2px;
  color: #fff;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  letter-spacing: 3px;
  font-size: 15px;
  padding: 12px 20px;
  width: 60%;
  display: inline-block;
  margin: 0;
  float: none;
  cursor: pointer;
}

.review_post .confirmation {
  color: #be6b7c;
  font-family: "Noto Serif JP", serif;
  font-size: 12px;
}

/* ==========================================================================
   ニュースページ (news) — SP用ローズテーマ
   ========================================================================== */
/* 一覧 */
#news_box {
  background: none;
  border: none;
  border-radius: 0;
  box-shadow: none;
  padding: 4px 0;
  margin: 14px 0 18px;
}

#news_box li {
  border-bottom: 1px dotted #ccc;
}

#news_box li:after {
  content: "\f105";
  color: #be6b7c;
  font-weight: 700;
  right: 4%;
  top: 50%;
  transform: translateY(-50%);
  font-size: 18px;
}

#news_box li a {
  padding: 14px 18px;
  transition: background 0.3s ease;
}

#news_box li a:hover {
  background: rgba(190, 107, 124, 0.05);
}

#news_box li span {
  background: transparent;
  color: #9b93c7;
  font-family: "Cormorant Garamond", "Noto Serif JP", serif;
  font-weight: 400;
  font-size: 13px;
  letter-spacing: 1px;
  padding: 0;
  margin: 0 0 4px;
  border-radius: 0;
  display: block;
}

#news_box li p {
  width: 90%;
  color: #534a55;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-size: 15px;
  letter-spacing: 0.5px;
  line-height: 1.6;
  padding: 0;
  margin: 0;
}

/* 個別ページ */
.news_view_box {
  background: none;
  border: none;
  border-radius: 0;
  box-shadow: none;
  padding: 10px 0;
  margin: 14px 0 18px;
}

.news_view_inner {
  padding: 0;
}

.news_view_inner_title p.posted_date {
  color: #9b93c7;
  font-family: "Cormorant Garamond", "Noto Serif JP", serif;
  font-weight: 400;
  font-size: 13px;
  letter-spacing: 1px;
  border-bottom: 1px dashed #ccc;
  padding: 0 0 8px;
  margin: 0 0 14px;
}

.news_view_inner_title h4 {
  color: #be6b7c;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 18px;
  letter-spacing: 2px;
  border-bottom: none;
  padding: 0 0 12px 4px;
  margin: 0 0 18px;
  line-height: 1.5;
}

.writing_area {
  font-family: "Noto Serif JP", serif;
  color: #534a55;
  font-size: 14px;
  line-height: 1.95;
  letter-spacing: 0.3px;
  padding: 4px;
}

.writing_area p,
.writing_area div {
  font-size: 14px;
  line-height: 1.95;
  letter-spacing: 0.3px;
}

.writing_area a {
  color: #be6b7c;
  text-decoration: underline;
}

.writing_area strong {
  font-weight: 500;
  color: #534a55;
}

.writing_area img {
  max-width: 100%;
  height: auto !important;
  display: block;
  margin: 14px auto;
  border-radius: 4px;
}
