/*
Theme Name: MONAD Child
Theme URI: https://tcd-theme.com/tcd110/
Template: monad_tcd110
Author: TCD
Author URI: https://tcd-theme.com/
Description: WordPress theme "MONAD" was developed with a clinic site such as a psychosomatic clinic. It is characterized by gentle animations that give the image of a reassuring clinic, and has features that make it easy to create a medical information page and a FAQ page.
Version: 1.5.3.1765331585
Updated: 2025-12-10 10:53:05

*/

/* ----------------------------------------------------------------------
 共通パーツ
---------------------------------------------------------------------- */
/* トップページ以外のコンテンツをヘッダーメニュー分下げる */
#container { top: 120px;}
#page_contents {padding-bottom:40px !important;}
@media screen and (max-width: 1300px) {
	body.page #container { top: 60px;}
	body.home #container { top: 120px;}
	body.single #container { top: 60px;}
	#page_headline { background-size: cover;}
}

/* トップページの一番下のコンテンツ（アクセスの上）の下余白削除 */
#content_builder section:last-child {padding-bottom:48px;}

/* トップページのフッターの上余白確保 */
body.home #footer{ padding-top: 48px;}

/* 各ページのコンテンツ幅 */
body.page #page_contents .post_content, body.page #main_content, body.page #page_contents .post_content, #single_service { width:100%; !important}	/* 全体のコンテンツ幅100% */
@media screen and (max-width: 1160px) {
        #page_contents { padding: 40px 0 !important;}
}
@media screen and (max-width: 800px) {
	.e-con>.e-con-inner {width:93% !important;}
}

/* 固定ページのページ名 */
#page_headline {height:150px; color:var(--main_color); background: url(../../../wp-content/uploads/2025/12/background_title.jpg); background-size: cover; background-repeat: no-repeat;}

@media screen and (max-width: 1160px) {
	#page_headline {height:60px; font-size:22px;}
}
/* 入れ子の post_content だけ、先頭要素の余白を復活 */
.post_content .post_content > *:first-child{
/*   margin-top: 20px !important;   好きな値に */
  padding-top: 20px !important;      /* paddingで調整したいならここも変える */
}

/* デザインボタン */
a.design_button {
  border-radius:70px; min-width:280px; height:70px; line-height:1.5; padding:0 1.5em; text-align:center; position:relative; overflow:hidden; font-size:16px; z-index:1; color:#fff !important; border:1px solid var(--content_link_color); background:var(--content_link_color); text-decoration: none;
  transition: border-color 0.2s ease 0s, color 0.2s ease 0s, background-color 0.2s ease 0s, opacity 1.4s ease 0s, transform 1.4s cubic-bezier(0.22, 1, 0.36, 1) 0s !important;
	display:inline-flex; justify-content:center; align-items:center; font-weight:600; text-decoration:none !important;
}
@media(hover: hover) {
  a.design_button:hover { border-color:var(--content_link_color_hover); background:var(--content_link_color_hover); color:#fff !important; text-decoration:none !important; }
}
.post_content a.q_custom_button2 {margin-top:2em; background-color:var(--content_link_color) !important;}

/* 段落の字間と行間調整 */
:is(.post_content, .post_content .tcdce-body) p { line-height:1.75; margin:0; letter-spacing:0.05em; }
.post_content p { line-height:2; margin:0; }
.post_content h1, .post_content h2, .post_content h3, .post_content h4, .post_content h5, .post_content h6 { clear:both; line-height:1.4; padding:0; font-weight:600; letter-spacing:0.05em; }

/* デフォルト見出し+クイックタグ見出しのスタイル */
.post_content h1 { font-size:36px; font-weight:500; line-height:1.4; margin: 120px 0 1.3em 0; text-align:center; }
.cb_two_column h2, .post_content h2, #footer h2 { font-size:42px; font-weight:500; line-height:1.4; text-align:center; margin:0; }
.cb_two_column h3, .post_content h3, #footer h3 { font-size:36px; font-weight:500; line-height:1.6; margin:0; }
.cb_two_column h4, .post_content h4, #footer h4 { font-size:30px; font-weight:500; line-height:1.6; margin:0; }
.cb_two_column h5, .post_content h5, #footer h5 { font-size:24px; font-weight:700; line-height:1.6; margin:0; }
.cb_two_column h6, .post_content h6, #footer h6 { font-size:20px; font-weight:700; line-height:1.6; margin:0; }
body.mobile_device h5 {font-size:20px !important; font-weight:700 !important;}

@media screen and (max-width: 1300px) {
	.cb_two_column h2, .post_content h2, #footer h2 { font-size:var(--headline_font_size_sp);}
	.cb_two_column h3, .post_content h3, #footer h3 { font-size:20px;}
	.cb_two_column h4, .post_content h4, #footer h4 { font-size:18px;}
	.cb_two_column h5, .post_content h5, #footer h5 { font-size:18px;}
	.cb_two_column h6, .post_content h6, #footer h6 { font-size:16px;}
	}

body.mobile_device h5 {font-size:20px !important; font-weight:700 !important;}
body.mobile_device h6 {font-size:18px !important; font-weight:700 !important; line-height:1.6;}

@media screen and (max-width: 800px) {
	.cb_two_column h3, .post_content h3, #footer h3 {text-align:center;}
}

/* 整形済みテキスト　背景色削除＆フォント変更 */
pre { background:transparent !important; font-family: var(--tcd-font-type1) !important; font-size:16px !important;}

/* スマホで閲覧時のリストの余白 */
@media screen and (max-width: 800px) {
    .post_content li { line-height: 2; }
}

/* モバイル版メニュー背景色変更 */
#drawer_menu, #mobile_menu a { background: #2f7f63 !important; }

/* TablePressスクロールバー削除 */
  .tablepress, .tablepress-wrapper,.dataTables_wrapper {
    overflow: hidden !important;
  }

/* TablePressスクロールバー削除 */
.tablepress>:where(thead,tfoot)>tr>* {background-color:var(--e-global-color-58e6996) !important;}

  /* スクロールバー表示キャンセル */
@media screen and (max-width: 800px) {
  .post_content .s_table,
  .post_content .s_table * {
    overflow-x: hidden !important;
  }
    .post_content .s_table {
	overflow: hidden !important;
	white-space: normal !important;
	margin-right: 0 !important;
	margin-left:  0 !important;
	padding: 0 20px !important;
    }
}

/* ----------------------------------------------------------------------
 トップページ関係
---------------------------------------------------------------------- */
@media screen and (min-width: 1301px) {
/* メインビジュアルの角丸解除 */
#header_slider_container { border-radius:0px; }
	
/* スライダー（メインビジュアル）の外枠 */
#header_slider_container { width:calc(100% - 80px); height:calc(100vh - 160px); position:relative; overflow:hidden; margin:40px 40px 0; border-radius:0px 150px 0px 150px; }

/* メインビジュアル内のロゴを原寸大に */
#header_slider_container .logo img { display:block; height:auto; }
}

#header_slider_container .rich_font_2 {font-family: var(--tcd-font-type2) !important; color:#fff !important;}

/* メインビジュアル内のテキストの可読性改善 */
body.use_page_animation .header_slider_content span.animate, body.use_page_animation .header_slider_content .item.animate { opacity:1; transform:translate3d(0,0,0); transition:opacity 1.8s ease 0.2s, transform 1.8s ease 0.2s; text-shadow: 0 0 6px rgba(0,0,0,0.8), 0 0 12px rgba(0,0,0,0.2); }

/* ニューススティッカーをお問い合わせボタンへ変更 */
#news_ticker { position: relative; overflow: hidden; left: 100px; top: -225px; margin-bottom: -200px; z-index: 5; width:auto; height:auto; background: transparent;}
#news_ticker a:hover {opacity:0.7;}
@media screen and (max-width: 800px) {
	body.home #news_ticker { left: 30px !important; top: calc(-25vw - 20px) !important; max-width: 25% !important; height:auto !important; border-bottom:none !important;}
	body.home #news_ticker img { width:100% !important;}
}

/* メインビジュアル背景 */
body.home {
  position: relative;
}
body.home::before {	
  content: "";
  position: absolute;
  inset: 0 auto auto 0;
  width: 100%;
  aspect-ratio: 60 / 43;
  background-image: url("../../../wp-content/uploads/2025/12/background_mv.jpg");
  background-size: 100% auto; /* 横幅フィット＆縦は自動 */
  background-repeat: no-repeat;
  background-position: top center;
  z-index: -1;
  pointer-events: none;
}

/* スマホ・タブレット幅 */
@media (max-width: 800px) {
  body.home::before {
    aspect-ratio: 800 / 2000; /* ←スマホ用に縦長比率へ切り替え */
    background-image: url("../../../wp-content/uploads/2025/12/background_mv_sp.jpg");
    background-size: 100% auto;
    background-position: top center;
  }
}


/* ----------------------------------------------------------------------
 コンテンツビルダー
---------------------------------------------------------------------- */
/* 背景色削除 */
#content_builder { position:relative; z-index:2; overflow:hidden; background: transparent;}

/* 「お知らせ」「診療科目」セクション背景画像設定＋余白　※「お知らせ」は一時的に除外 */
/* #content_builder .cb_news_list, #content_builder #cb_content_3, #content_builder .cb_service_list { background:#fcfbe3; background-position:top !important; background-repeat: no-repeat !important; background-size: contain !important; }
#content_builder .cb_news_list, #content_builder .cb_service_list { background-image: url(../../../wp-content/uploads/2025/12/background_sec01.png) !important; padding-top: 64px; padding-bottom: 64px;}
#content_builder #cb_content_3 { background-image: url(../../../wp-content/uploads/2025/12/background_sec02.png) !important; padding-top: 64px; padding-bottom: 64px;}
@media screen and (max-width: 800px) {
	#content_builder .cb_news_list, #content_builder .cb_service_list { background-image: url(../../../wp-content/uploads/2025/12/background_sec01_sp.png) !important;}
	#content_builder #cb_content_3 { background-image: url(../../../wp-content/uploads/2025/12/background_sec02_sp.png) !important;}
} */
#content_builder #cb_content_3, #content_builder .cb_service_list { background:#fcfbe3; background-position:top !important; background-repeat: no-repeat !important; background-size: contain !important; }
#content_builder .cb_service_list { background-image: url(../../../wp-content/uploads/2025/12/background_sec01.png) !important; padding-top: 64px; padding-bottom: 64px;}
#content_builder #cb_content_3 { background-image: url(../../../wp-content/uploads/2025/12/background_sec02.png) !important; padding-top: 64px; padding-bottom: 64px;}
@media screen and (max-width: 800px) {
	#content_builder .cb_service_list { background-image: url(../../../wp-content/uploads/2025/12/background_sec01_sp.png) !important;}
	#content_builder #cb_content_3 { background-image: url(../../../wp-content/uploads/2025/12/background_sec02_sp.png) !important;}
}

/* 各セクション余白＋フォントの段落設定 */
#content_builder section { margin-top: 64px; margin-bottom: 64px;}
#content_builder .cb_news_list, #content_builder #cb_content_3, #content_builder .cb_service_list { margin-top: 0 !important; margin-bottom: 0 !important;}
#content_builder .post_content {line-height: 1.75; }
#content_builder .content { color:var(--main_color); line-height: 1.75;}

/* お知らせ */
.news_list .date {padding-left: 54px;}
.news_list .date:before {content: url(../../../wp-content/uploads/2025/12/listicon_news.png); display: inline-block; position: absolute; left: 0;}
.news_list .title {font-weight:700;}

/* 診療時間 */
#content_builder .schedule_area {width: 960px; margin: 0 auto; background: #fff; border-radius: 10px; padding: 20px 45px; border: 1px solid #ddd;display:flex;gap:20px;}
#content_builder .schedule_area_txt {width: 960px; margin: 0 auto; color:var(--main_color);}
@media (max-width: 800px) {
	#content_builder .schedule_area {width: 100%; padding: 20px;flex-direction: column;}
	#content_builder .schedule_area_txt {width: 100%; }
}

/* 診療科目リスト */
body.home .cb_service_list .service_list .item { width: calc(100% / 2 - 20px); border: 2px; border-color: var(--main_color);}
body.home .cb_service_list .service_list .item:nth-child(2n) {margin-right: 0;}
body.home .cb_service_list .service_list .item:nth-child(3n) {margin-right: 30px;}
@media (max-width: 800px) {
	body.home .cb_service_list .service_list .item { width: 100%;}
}
body.home .cb_service_list .service_list .title { color: #fff; background-color: var(--main_color); border-radius: 10px 10px 0px 0px; padding: 1em;}

/* リンク色変更
---------------------------------------------------------------------- */
/* お知らせ */
.news_list .item {color:var(--main_color);}

/* 2カラム */
.cb_two_column .link { margin-top:40px; font-size:18px; position:relative; color:var(--content_link_color); padding-right:30px; display:inline-block; }
@media (hover: hover) {.cb_two_column .link:hover { font-weight: 700;}}

/* スタッフ一覧 */
#staff_list .link { color:var(--content_link_color); font-size:16px; padding-right:25px; position:relative; }


/* ----------------------------------------------------------------------
 診療科目アーカイブ
---------------------------------------------------------------------- */
#service_content_list .service_content .title a { color:#000; display:block; }
#service_content_list .service_content .link { display:inline-block; margin-top:40px; font-size:16px; position:relative; color:var(--content_link_color); padding-right:25px; }


/* ----------------------------------------------------------------------
 診療科目詳細
---------------------------------------------------------------------- */
#single_service { margin:0 auto; padding:80px 0 92px; }
#service_header { border:1px solid #ddd; border-radius:10px; position:relative; padding:80px 80px 0 80px; margin: 0 auto 64px; width: 980px;}
@media screen and (max-width: 800px) {
	#single_service { margin:0 auto; padding:0 0 32px 0; }
	#service_header {
		padding: 0;
		border-radius: 0;
		border: none;
		margin-bottom: 40px;
		width:90%;
	}
}
#service_header .check_list { background:var(--content_link_color); border-radius:10px; padding:60px; }


/* ----------------------------------------------------------------------
　ページ上部　ヘッダー（PC 基本レイアウト）
---------------------------------------------------------------------- */
#header {
  position: sticky;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  width: 100%;
  height: 120px;
  display: flex;
  background: transparent;
  box-shadow: none;
}

/* ロゴ＋メニューのコンテナ（左右40px余白に収める） */
.header_menu_area {
  display: flex;
  align-items: center;
  width: calc(100% - 160px);
  margin: 0 auto;
}

.header_menu_side {
  width: 100%;
}

#header,
.header_menu_area,
#global_menu,
#global_menu > ul {
  overflow: visible !important;
  z-index: 1000;
}

/* ロゴ画像 */
#header_logo {
  padding: 0;
}
#header_logo img {
  max-height: 60px;
  width: auto;
}

/* グローバルメニュー */
#header:not(:has(#header_search)) #global_menu {margin-right:0 !important;}
#global_menu {
  flex: 1;
}

#global_menu > ul {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
}

#global_menu > ul > li {
  position: relative;
  padding: 10px 0;
  margin: 0;
}

#global_menu > ul > li > a {
  position: relative;
  display: inline-block;
  padding: 0px 10px;
  font-weight: 700;
  font-size: 18px;
  color: var(--main_color);
  text-decoration: none;
  z-index: 1;
  text-shadow:
    -2px -2px 3px rgba(255,255,255,1),
     2px -2px 3px rgba(255,255,255,1),
    -2px  2px 3px rgba(255,255,255,1),
     2px  2px 3px rgba(255,255,255,1),
     0 0 4px rgba(255,255,255,1),
     0 0 6px rgba(255,255,255,0.9);
  letter-spacing: 0.05em;
}

/* hover 背景 */
#global_menu > ul > li > a::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: calc(100% + 12px);
  height: 34px;
  border-radius: 10px;
  background: rgba(124, 113, 93, 0.8);
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s ease;
  z-index: -1;
}

#global_menu > ul > li:hover > a::before,
#global_menu > ul > li.current-menu-item > a::before {
  opacity: 1;
}

#global_menu > ul > li:hover > a,
#global_menu > ul > li.current-menu-item > a {
  color: #fff !important;
  text-shadow: none;
}

.header-cta-group {display:none;}
.header-cta a:hover {opacity:0.7;}

/* ----------------------------------------------------------------------
　スマホ・タブレット（変更なし）
---------------------------------------------------------------------- */
@media screen and (max-width: 1300px) {
  body:not(.home) .header-cta-group,
  body.home .header-cta-group {display:none !important;}
  #header {
    height: 60px;
    display: block;
    text-align: center;
  }
/* ▼ メニュー関連 */
  #drawer_menu_button span { width:30px !important;}
  #drawer_menu_button span:nth-child(1) {top:17px !important;}
  #drawer_menu_button span:nth-child(2) {top:25px !important;}
  #drawer_menu_button span:nth-child(3) {top:33px !important;}
  #drawer_menu_button p {font-size: 0.7em; display: block; left: 10%; top: 40px; position: absolute; text-align: center; margin: 0 auto;}
}

/* ----------------------------------------------------------------------
  PC：home だけ上吸着演出を行う
---------------------------------------------------------------------- */
@media (min-width: 1301px) {

  /* トップページのコンテンツは下げない */
  body.home #container { top: 120px; }

  /* home 初期状態：ロゴ非表示＆透明背景 */
  body.home #header_logo { display: none; }

  body.home #header {
    background: transparent;
    box-shadow: none;
  }

  /* home：スクロール後（.scrolled付与後） */
  body.home #header.scrolled #header_logo { display: inline-block; }

  body.home #header.scrolled #header_logo img { max-height: 60px; margin-bottom: -20px; }

  body.home #header.scrolled {
    position: fixed;
    background: #ffffff;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
  }

  body.home #header.scrolled .header_menu_area { width: calc(100% - 80px); }

  body.home #header.scrolled .header_menu_side {
    position: relative;
    top: -5px;
    text-align: right;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
  }

  body.home #header.scrolled #global_menu > ul {
    justify-content: flex-end;
    gap: 16px;
    height: 60px;
  }

  body.home #header.scrolled #global_menu > ul > li { padding: 0; }

/* ▼ 関連会社・お問い合わせボタン */
  body.home #header.scrolled .header-cta-group{
  display:flex;
  align-items:center;
  position:relative;
  margin-left: 20px;
  z-index: 9999;
  }
  body.home #header.scrolled .header-cta{
  display:inline-flex;
  align-items:center;
  position:relative;
  text-decoration:none;
}
  body.home #header.scrolled .header-cta img{
  height:50px;
  width:auto;
  display:block;
}
  body.home #header.scrolled .related{
  z-index:1;
  position: absolute;
  left: -217px;
}
  body.home #header.scrolled .contact{
  z-index:2;
}
}

/* ------------------------------------------------------------------
  ▼ home「以外」のページは最初から上ぴた状態
------------------------------------------------------------------ */
body:not(.home) #header {
  position: fixed;
  background: #ffffff;
  box-shadow: 0 2px 4px rgba(0,0,0,0.08);
}

/* body:not(.home) #header_logo { display: block; } */

body:not(.home) #header_logo img { max-height: 60px; margin-bottom: -20px;}

body:not(.home) .header_menu_side {
  position: relative;
  top: -5px;
  text-align: right;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}

body:not(.home) #global_menu > ul {
  justify-content: flex-end;
  gap: 20px;
  height: 60px;
}

body:not(.home) #global_menu > ul > li { padding: 0; }

/* ▼ 関連会社・お問い合わせボタン */
@media (min-width: 1301px) {
body:not(.home) .header-cta-group{
  display:flex;
  align-items:center;
  position:relative;
  margin-left: 20px;
  z-index: 9999;
}
body:not(.home) .header-cta{
  display:inline-flex;
  align-items:center;
  position:relative;
  text-decoration:none;
}
body:not(.home) .header-cta img{
  height:50px;
  width:auto;
  display:block;
}
body:not(.home) .related{
  z-index:1;
  position: absolute;
  left: -217px;
}
body:not(.home) .contact{
  z-index:2;
}
}


/* ------------------------------------------------------------------
  ▼ グローバルメニュー：画面幅ごとのフォントサイズ制御
------------------------------------------------------------------ */
@media (min-width: 1301px) and (max-width: 1400px) {
#global_menu > ul > li > a { font-size: 16px; }
}

@media (min-width: 1301px) and (max-width: 1500px) {
  body.home #global_menu > ul,
  body:not(.home) #global_menu > ul { gap: 10px;}
  body.home #header.scrolled #global_menu > ul > li > a,
  body:not(.home) #global_menu > ul > li > a {
    font-size: 13px;
  }
}

@media (min-width: 1501px) and (max-width: 1600px) {
  body.home #header.scrolled #global_menu > ul > li > a,
  body:not(.home) #global_menu > ul > li > a {
    font-size: 14px;
  }
}

@media (min-width: 1601px) {
  body.home #header.scrolled #global_menu > ul > li > a,
  body:not(.home) #global_menu > ul > li > a {
    font-size: 16px;
  }
}

	
@media screen and (max-width: 1300px) {
	.header_menu_area {display:block; width: calc(100% - 80px); margin-left:40px;}
	body.home #header, #header {background: #fff !important; text-align:left !important;}
	#header_logo { top:5px !important;}
	#header_logo img {height: 50px;}
  @media screen and (max-width: 800px) {
	.header_menu_area { margin-left:10px;}
  }
}

/* ------------------------------------------------------------------
  ▼ モバイル版メニューのCTAボタン
------------------------------------------------------------------ */
#drawer_menu .drawer-cta{
  margin: 20px 20px 10px;
  display: flex;
  gap: 12px;
}

#drawer_menu .drawer-cta__btn{
  flex: 1 1 0;
  height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  line-height: 1;
  box-sizing: border-box;
  white-space: nowrap;
}

/* 関連企業：白背景＋枠（控えめ） */
#drawer_menu .drawer-cta__btn--related{
  background: #ffffff;
  font-size: 12px !important;
  color: #1f6f59;
  border: 2px solid rgba(255,255,255,.85);
}

/* お問い合わせ：薄い黄色背景（関連企業より強め） */
#drawer_menu .drawer-cta__btn--contact{
  background: #fcfbe3;
  color: #0f4f3e;
  box-shadow: 0 8px 18px rgba(0,0,0,.12);
}

/* 押した感（スマホ） */
#drawer_menu .drawer-cta__btn:active{
  transform: translateY(1px);
  box-shadow: none;
}

/* 画面が狭い場合は2段 */
@media (max-width: 360px){
  #drawer_menu .drawer-cta{
    flex-direction: column;
  }
}

/* ----------------------------------------------------------------------
   TablePress　※診療時間表専用
---------------------------------------------------------------------- */
table.tablepress th,
table.tablepress td {
	text-align: center;
	color:var(--main_color);
	padding: 0 !important;
}
table.tablepress th {
	font-size: 16px;
	font-weight:700;
}
table.tablepress td {
	font-size: 16px;
}
table.tablepress .column-1 {width:150px;}
@media (max-width: 768px) {
	table.tablepress .column-1 {width:20%;}
}
/* TablePress：枠線を消す（全サイズ共通） */
.post_content table.tablepress,
.post_content table.tablepress th,
.post_content table.tablepress td {
  border: none !important;
}


@media (max-width: 768px) {

  /* テーブルそのものを画面にフィットさせる */
  table.tablepress {
    width: 100% !important;
    table-layout: fixed !important;
    border-collapse: collapse;
  }

  /* ヘッダ・セル共通の文字と余白調整 */
  table.tablepress th,
  table.tablepress td {
    box-sizing: border-box;
    padding: 8px 4px !important;
    font-size: clamp(10px, 2.5vw, 16px);
    line-height: 1.4;
    white-space: normal;
    /* ★ ここでは word-break は使わない！
       → 1文字ずつ縦に並ぶ原因なので外す */
    word-break: normal;
    overflow-wrap: normal;
    vertical-align: middle;
    text-align: center;
  }

  /* THはちょっと強めに（曜日部分など） */
  table.tablepress th {
    font-weight: 600;
  }

  /* 左端「時間」カラムだけ個別調整（column-1） */
  table.tablepress th.column-1,
  table.tablepress td.column-1 {
    text-align: center;
    padding: 4px 4px;
    font-size: 10px;
    line-height: 1.3;
    /* ここも 1文字折りを防止 */
    word-break: keep-all;
    overflow-wrap: normal;
    white-space: normal; /* 2行くらいの折り返しはOKにする */
  }

}
@media screen and (max-width: 1160px) {

  /* TablePress のセル共通 */
  .post_content table.tablepress th,
  .post_content table.tablepress td {
    padding: 8px 6px !important;
    line-height: 1.4 !important;
    font-size: clamp(12px, 2.5vw, 16px) !important;
  }

  /* 1列目（時間カラム）だけさらに縮める */
  .post_content table.tablepress th.column-1,
  .post_content table.tablepress td.column-1 {
    padding: 4px 4px !important;
    font-size: 11px !important;
  }
}


/* ----------------------------------------------------------------------
 フッター
---------------------------------------------------------------------- */
/* ベースのフォント系 */
#footer {
  color: var(--main_color);
}

/* ------------------------------------------------------------------
  アクセス・お問い合わせ先エリア（共通）
------------------------------------------------------------------ */
#footer_access_area {
  background-color: #fff;
  color: var(--main_color);
/*   padding: 60px 0 50px; */
  padding: 0 24px;
}
#footer_access_inner {
	width: 960px;
	margin: 0 auto;
}
#footer_access_inner h2, #footer_access_inner h5{line-height: 1.7; margin-bottom: 1em;}
#footer_access_inner h6{line-height: 1.7;}
#footer_access_inner h4 {margin-top:1em;}
#footer_access_inner h4,#footer_access_inner h5 {text-align:center;}
#footer_access_inner .wp-block-image { text-align:center;}
#footer_access_inner img { max-width:100%;}
@media screen and (max-width: 1000px) {
#footer_access_inner {
	width: auto;
/* 	  padding: 60px 20px 50px; */
}
}
#footer_access_inner .is-layout-flex {
	margin-top:1em;
	display:flex;
	align-items: flex-start;
}
/* #footer_access_inner .is-layout-flex div {width:calc(50% - 10px);} */
#footer_access_inner p {
    line-height: 1.75;
    margin-bottom: 2em;
}

#footer_access_inner .information {background-color:var(--main_color) !important; color:#fff !important;text-align: center; padding: 20px; border-radius: 10px; margin-bottom:20px;}
#footer_access_inner .information img {width:130px;}
#footer_access_inner .information h5 {font-weight:700 !important; line-height: 2 !important; margin-bottom: 0 !important;}
#footer_access_inner .information h6 {font-weight:700 !important; line-height: 2 !important; margin-top: 1em !important; color:#fff;}
#footer_access_inner .tel {font-size:1.5em;}

@media screen and (min-width: 600px) {
	.information {display:none}
}
@media screen and (max-width: 601px) {
	.info_img {display:none;}
}
@media screen and (max-width: 800px) {
	#footer_access_inner h5 {font-size:18px;}
	#footer_access_inner h6 {font-size:16px; font-weight:700 !important; margin-bottom:0;}
	#footer_access_inner .is-layout-flex {
	flex-direction: column;
        display: flex;
	}
	#footer_access_inner .is-layout-flex div {width:100%;}
	#footer_access_inner .wp-block-group {background:#fcfbe3; padding:10px; margin-bottom:1em;}
	#footer_access_inner span { line-height: 1.5;}
	#footer_access_inner p {margin-bottom:0;}
}


/* ------------------------------------------------------------------
  キャッチコピー＆病院ロゴエリア（共通）
------------------------------------------------------------------ */
#footer_info_area {
  background-color: #fff;
  color: var(--main_color);
/*   padding: 60px 0 50px; */
}

#footer_info .rich_font_2 {
  text-align: left;
  font-weight: 700;
  font-family: var(--tcd-font-type2) !important;
}

/* ------------------------------------------------------------------
  800px以下：キャッチコピーエリア調整
------------------------------------------------------------------ */
@media screen and (max-width: 800px) {
  #footer_info .rich_font_2 {
    text-align: center;
    font-size: 40px;
  }

  .schedule_desc {
    text-align: center;
  }

  #footer_info2 p {
    text-align: left;
    margin-left: 10px;
  }
}

/* ------------------------------------------------------------------
  診療時間（フッター）
------------------------------------------------------------------ */
#footer_access_inner .footer_schedule {	gap:20px; align-items: baseline;}
#footer_access_inner .footer_schedule div {	width:calc(50% - 10px);}
#footer_access_inner .footer_schedule div h4 { text-align:left;}
#footer_access_inner table.tablepress th, #footer_access_inner table.tablepress td{text-align: center; padding: 8px !important;}
@media screen and (max-width: 800px) {
	#footer_access_inner .footer_schedule { gap:20px; flex-direction: column-reverse;}
	#footer_access_inner .footer_schedule div {	width:100%;}
	#footer_access_inner .footer_schedule div h4 { text-align:center;}
}

/* ------------------------------------------------------------------
  サイトマップエリア（PCのみ表示）
------------------------------------------------------------------ */
#footer_menu_area {
  background-color: #F2F2F2;
  color: var(--main_color);
/*   padding: 60px 0 50px; */
}

#footer_menu {
  width: 960px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  padding: 40px 0;
}

/* 1300px以下：サイトマップ非表示 */
@media screen and (max-width: 1300px) {
  #footer_menu {
    display: none !important;
  }
}

/* サイトマップ見出し */
#footer_menu .sitemap {
  width: 150px;
  font-size: 16px;
  font-weight: 600;
  color: var(--main_color);
}

/* メニュー共通 */
#footer_menu .menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* 親メニュー（縦並び） */
#footer_menu .menu > li {
  margin-bottom: 6px;
}

/* 親メニューリンク */
#footer_menu .menu > li > a {
  display: block;
  font-size: 14px;
  font-weight: 600;
  color: var(--main_color);
  text-decoration: none;
}

#footer_menu .menu > li > a:hover {
  opacity: 0.7;
}

/* ------------------------------------------------------------------
  子メニューありの親（診療案内・関連施設など）
------------------------------------------------------------------ */
#footer_menu .menu-item-has-children {
  display: flex;
  align-items: flex-start;
  gap: 32px;
}

/* 親ラベル（左側） */
#footer_menu .menu-item-has-children > a {
  min-width: 7em;
}

/* 子ページ一覧（右側） */
#footer_menu .menu-item-has-children > .sub-menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 4px 16px;
}

/* 子ページリンク */
#footer_menu .menu-item-has-children > .sub-menu a {
  font-size: 12px;
  font-weight: 400;
  color: var(--main_color_light);
  text-decoration: none;
}

/* ------------------------------------------------------------------
  フッターボトム（SNSエリア）
------------------------------------------------------------------ */
#footer_bottom {
  position: relative;
  border-top: 1px solid #ddd;
  height: 70px;
  background-color: #fff;
  color: var(--main_color_light);
}


/* ------------------------------------------------------------------
---------------------------------------------------------------------
  各固定ページ　Elementor用css
------------------------------------------------------------------ */
/* 各ページのコンテンツ幅 */
.box_1column {width:980px !important; }
@media screen and (max-width: 1160px) {
	.box_1column {width:calc(100% - 160px) !important; }
}
@media screen and (max-width: 800px) {
	.box_1column {width:90% !important; }
}

/* セクション上下幅 */
:is(.elementor-section-wrap,[data-elementor-id])>.e-con { padding: 48px 0 !important;}
@media screen and (max-width: 1160px) {
	:is(.elementor-section-wrap,[data-elementor-id])>.e-con { padding: 32px 0 !important;}
}

/* 診療時間・予約方法エリア */
.schedule_rsv_area h5 {margin-bottom:16px;}
.schedule_rsv_area .rsv_area h6 { text-align: center; margin-bottom: 8px !important; display: block; width: 4em; margin: 0 auto; border-radius:10px;}
.schedule_rsv_area .rsv_area p div { text-align: center; margin-bottom: 8px !important;}
.rsv_green h6 {background: #cbeddd;}
.rsv_blue h6 {background: #d8ebf8;}

/* セクション背景：白×花 */
.back_white01 { background: #fff; background-image: url(../../../wp-content/uploads/2025/12/background_sec03.png) !important; background-position:top !important; background-repeat: no-repeat !important; background-size: contain !important; }
.back_white02 { background-image: url(../../../wp-content/uploads/2025/12/background_sec04.png) !important; background-position:top !important; background-repeat: no-repeat !important; background-size: contain !important; }
.back_white_long { background-image: url(../../../wp-content/uploads/2025/12/background_longsec01.png) !important; background-position:top !important; background-repeat: repeat-y !important; background-size: cover !important; }
@media screen and (max-width: 800px) {
	.back_white01 { background: #fff; background-image: url(../../../wp-content/uploads/2025/12/background_sec03_sp.png) !important; background-position:top !important; background-repeat: no-repeat !important; background-size: contain !important; width: 100%; }
	.back_white02 { background-image: url(../../../wp-content/uploads/2025/12/background_sec04_sp.png) !important; background-position:top !important; background-repeat: no-repeat !important; background-size: contain !important; width: 100%; }
	.back_white_long { background-image: url(../../../wp-content/uploads/2025/12/background_longsec01_sp.png) !important; background-position:top !important; background-repeat: repeat-y !important; background-size: contain !important; width: 100%; }
}

/* セクション背景：黄×花 */
.back_yellow01{ background: #fcfbe3; background-image: url(../../../wp-content/uploads/2025/12/background_sec01.png) !important; background-size: contain !important; background-repeat: no-repeat !important; }
.back_yellow02 { background: #fcfbe3; background-image: url(../../../wp-content/uploads/2025/12/background_sec02.png) !important; background-size: contain !important; background-repeat: no-repeat !important; }
@media screen and (max-width: 800px) {
	.back_yellow01{ background: #fcfbe3; background-image: url(../../../wp-content/uploads/2025/12/background_sec01_sp.png) !important; background-size: contain !important; background-repeat: no-repeat !important; width: 100%; }
	.back_yellow02 { background: #fcfbe3; background-image: url(../../../wp-content/uploads/2025/12/background_sec02_sp.png) !important; background-size: contain !important; background-repeat: no-repeat !important; width: 100%; }
}

/* 明朝体見出し */
.about_headline h2, .about_headline span { font-family: var(--tcd-font-type2) !important; margin-bottom: 0 !important;}
@media (max-width: 800px) {
.about_headline h2 {font-size:calc(var(--headline_font_size_sp) + 10px);}
}

/* リストマーク */
.post_list ul {list-style: none !important; margin-left: 12px;}
.post_list li{ display: flex; align-items: center; gap: 10px; line-height:2;}
.post_list li::before{ content: ""; width: 24px; height: 24px; background: url(../../../wp-content/uploads/2025/12/list_mark.png) no-repeat center / contain; flex-shrink: 0;}
@media (min-width: 801px) {
.post_list ul {list-style: none !important; margin-left: 24px;}
.post_ylist ul { display: grid; gap: 20px; margin-top: 16px !important;grid-template-columns: repeat(4, 1fr);}
.post_list li{ align-items: flex-start; }
.post_list li::before{ height: 32px;}
.post_ylist li::before { align-self: flex-start; margin-top: 0.5em;}
}
@media (min-width: 801px) {
.post_y2list ul { display: grid; gap: 0; margin-top: 16px !important;grid-template-columns: repeat(2, 4fr);}
.post_y2list li::before { align-self: flex-start; margin-top: 0.5em;}
}

.post_y42list ul { display: grid; gap: 10px 20px; margin-top: 16px !important;grid-template-columns: repeat(4, 1fr);}
.post_y42list li::before { align-self: flex-start; margin-top: 0.25em; height: 24px;}
@media (max-width: 801px) {
.post_y42list ul { display: grid; gap: 0; margin-top: 16px !important;grid-template-columns: repeat(2, 4fr);}
.post_y42list li::before { align-self: flex-start; margin-top: 0.25em;}
}

/* 各ページのテーブル */
#tablepress-history th {font-size:18px; text-align: left; padding: 0 8px !important;}
#tablepress-history tbody .column-1, #tablepress-history tbody .column-2,
#tablepress-facility tbody .column-1, #tablepress-facility tbody .column-2 { border-bottom: 1px solid #e6e6e6 !important; padding: 8px !important; text-align: left; font-size:16px !important;}
#tablepress-hospitalization_type tbody .column-1, #tablepress-hospitalization_type tbody .column-2 { border-bottom: 1px solid #e6e6e6 !important; padding: 8px !important; text-align: left; font-size:16px !important;}
#tablepress-hospitalization_attn tbody .column-1, #tablepress-hospitalization_attn tbody .column-2 { border-bottom: 1px solid #e6e6e6 !important; padding: 8px !important; text-align: left; font-size:16px !important;}
#tablepress-hospitalization_visitation tbody .column-1, #tablepress-hospitalization_visitation tbody .column-2 { border-bottom: 1px solid #e6e6e6 !important; padding: 8px !important; text-align: left; font-size:16px !important;}
#tablepress-hospitalization_after tbody .column-1, #tablepress-hospitalization_after tbody .column-2 { border-bottom: 1px solid #e6e6e6 !important; padding: 8px !important; text-align: left; font-size:16px !important;}

@media (max-width: 800px) {
	#tablepress-history , #tablepress-facility, #tablepress-hospitalization_type, #tablepress-hospitalization_attn, #tablepress-hospitalization_visitation, #tablepress-hospitalization_after {margin-right: -20px !important;}
  #tablepress-history,
  #tablepress-history thead,
  #tablepress-history tbody,
  #tablepress-history tr,
  #tablepress-history th,
  #tablepress-history td,
  #tablepress-facility,
  #tablepress-facility thead,
  #tablepress-facility tbody,
  #tablepress-facility tr,
  #tablepress-facility th,
  #tablepress-facility td,
  #tablepress-hospitalization_type,
  #tablepress-hospitalization_type thead,
  #tablepress-hospitalization_type tbody,
  #tablepress-hospitalization_type tr,
  #tablepress-hospitalization_type th,
  #tablepress-hospitalization_type td,
  #tablepress-hospitalization_attn,
  #tablepress-hospitalization_attn thead,
  #tablepress-hospitalization_attn tbody,
  #tablepress-hospitalization_attn tr,
  #tablepress-hospitalization_attn th,
  #tablepress-hospitalization_attn td,
  #tablepress-hospitalization_visitation,
  #tablepress-hospitalization_visitation thead,
  #tablepress-hospitalization_visitation tbody,
  #tablepress-hospitalization_visitation tr,
  #tablepress-hospitalization_visitation th,
  #tablepress-hospitalization_visitation td,
  #tablepress-hospitalization_after,
  #tablepress-hospitalization_after thead,
  #tablepress-hospitalization_after tbody,
  #tablepress-hospitalization_after tr,
  #tablepress-hospitalization_after th,
  #tablepress-hospitalization_after td{
    display: block !important;
    width: 100% !important;
    font-size:16px !important;
  }
  /* ヘッダー行は非表示 */
  #tablepress-history thead { display: none !important; }

  /* 2段目（値側）をインデント */
  #tablepress-history tbody td:nth-child(2),
  #tablepress-facility tbody td:nth-child(2),
  #tablepress-hospitalization_type tbody td:nth-child(2),
  #tablepress-hospitalization_attn tbody td:nth-child(2),
  #tablepress-hospitalization_visitation tbody td:nth-child(2),
  #tablepress-hospitalization_after tbody td:nth-child(2){
    padding-left: 1.5em !important;
  }

  /* 1列目を太字 */
  #tablepress-history tbody td:nth-child(1),
  #tablepress-facility tbody td:nth-child(1),
  #tablepress-hospitalization_type tbody td:nth-child(1),
  #tablepress-hospitalization_attn tbody td:nth-child(1),
  #tablepress-hospitalization_visitation tbody td:nth-child(1),
  #tablepress-hospitalization_after tbody td:nth-child(1){
    border: none !important;
    font-weight: 700 !important;
  }
}

/* 消化器内科：料金表 */
#tablepress-gastroscopy_price .column-1 {width:25% !important; text-align:left;}
#tablepress-gastroscopy_price tr{border-bottom: 1px solid #e6e6e6 !important;}
#tablepress-gastroscopy_price td {padding:4px 8px !important;}

/* ---------- スマホ表示 ---------- */
@media (max-width: 800px) {

  /* テーブルヘッダー非表示 */
  #tablepress-gastroscopy_price thead {
    display: none;
  }

  /* 1行＝1カード */
  #tablepress-gastroscopy_price tbody tr {
    display: block;
    margin-bottom: 20px;
    padding: 14px 16px;
    border: 1px solid #ddd;
    border-radius: 12px;
    background: #fff;
  }

  /* セルを縦並びに */
  #tablepress-gastroscopy_price td {
    display: block;
    padding: 6px 0;
    border: none;
    font-size: 16px !important;
    line-height: 1.7;
  }

  /* 検査名（1列目）を見出し扱い */
  #tablepress-gastroscopy_price td:nth-child(1) {
    font-size: 18px !important;
    font-weight: 700;
    margin-bottom: 8px;
    padding-bottom: 6px;
    width: 100% !important;
    text-align: center;
	background:#E9F3FC !important;
  }

  /* 疑似ラベル：1割負担 */
  #tablepress-gastroscopy_price td:nth-child(2)::before {
    content: "1割負担：";
    font-weight: 600;
    color: #666;
    margin-right: 4px;
	margin-top:1em;
  }

  /* 疑似ラベル：3割負担 */
  #tablepress-gastroscopy_price td:nth-child(3)::before {
    content: "3割負担：";
    font-weight: 600;
    color: #666;
    margin-right: 4px;
  }

  /* 疑似ラベル：備考 */
  #tablepress-gastroscopy_price td:nth-child(4)::before {
    content: "備考：";
    color: #666;
    margin-right: 4px;
	margin-top:1em;
  }

  /* 金額を少し強調 */
  #tablepress-gastroscopy_price td:nth-child(2),
  #tablepress-gastroscopy_price td:nth-child(3) {
    font-weight: 600;
  }
}


@media screen and (max-width: 1000px) {
    .flex_2column {flex-direction: column;}
}

.main_illness h5 {margin-bottom:0;}

/* ボタンを横幅100%に */
.w100_button .elementor-button {
  display: flex;          /* or block */
  width: 100%;
  justify-content: center; /* テキスト中央寄せ */
}

/* 説明系1カラムデザイン */
.page_info_sec h3 {font-size:20px;height: 3.5em;display: flex; align-content: center; flex-wrap: wrap; justify-content: center;}
.page_info_row2 { height: 85px; display: flex; align-content: center; flex-wrap: wrap; justify-content: center; align-items: center;}
.page_info_sec p {margin-bottom:1em !important;}
.page_info_sec h6 {border-left: var(--main_color) solid 4px; padding-left: 16px; margin-bottom: 0.3em;}
.page_info_sec hr { background-color: #cccccc; margin: 0 0 1em 0;}
@media screen and (max-width: 800px) {
	.page_info_sec h3 {font-size:18px;}
}

.page_info_sec tr {border-bottom: 1px solid #e6e6e6 !important;}
.page_info_sec .column-1 { width: 25% !important; font-weight: 700;}
.page_info_sec .column-1, .page_info_sec .column-2 { border-bottom: 1px solid #e6e6e6 !important; padding: 8px !important; text-align: left; font-size:16px !important;}

.page_facility_list tr {border-bottom: 1px solid #e6e6e6 !important;}
.page_facility_list .column-1 { width: 75% !important;}
.page_facility_list .column-2 { vertical-align: bottom; font-weight: 700;}
.page_facility_list .column-1, .page_facility_list .column-2 { border-bottom: 1px solid #e6e6e6 !important; padding: 8px !important; text-align: left; font-size:16px !important;}



/* 説明系カード */
.info-card {padding-bottom:16px !important;}
.info-card p {margin-bottom:0 !important;}

/* 入院案内/病棟説明 */
.ward_info h5 {margin-bottom:1.5em;}
.ward_info pre {margin-top:1.5em;}

/* h3＋pの組み合わせの注意事項などのセクション */
.info_catch h3,. info_catch h4 {margin-bottom: 1em;}

/* 太字＋pの組み合わせのちょっとした説明箇所（主に診療科目用） */
.course_point strong {margin-top: 1em !important; display: block;}

/* 薄い水色背景のマス目状リスト */
.grid_list { display: grid; align-content: center; align-items: center; gap: 1em;}
.grid_list div {display: flex; flex-direction: column; justify-content: center; gap:0;}
.grid_list h5 {margin-bottom: 8px;}

/* TablePressの下余白調整 */
.post_content .s_table table {
    margin-bottom: 0 !important;
}
@media screen and (max-width: 800px) {
	.post_content .s_table{
    margin-bottom: 0 !important;
	}
}

.page_info_cf {
    display: block;
    height: 80px;
    align-content: center !important;
}

/* 各診療科目比較 */
.diff_dept h3, .diff_dept h4, .diff_dept p {color:#fff !important; margin: 8px auto 0 !important;}
@media screen and (max-width: 800px) {
	.diff_dept p {font-size:14px;}
}

/* 各診療科目ページ：フッター上のページ一覧 */
#single_service #category_sort_button {width:980px !important; margin:48px auto 0;}
#category_sort_button ol li {width:calc(100% / 3);}
@media screen and (max-width: 800px) {
	#single_service #category_sort_button {width:90% !important; margin:32px auto 0;}
}

/* 手順・フロー */
.page_flow { height:300px;}
#hospitalization .page_flow { height:390px;}
#facility .page_flow { height:240px;}
#ninchi .page_flow { height:270px;}
#gastroenterology .page_flow { height:260px;}
#checkup .page_flow { height:360px;}
.page_flow .step_icon {width: 80px; height: 80px; font-weight:500 !important; color:#fff !important;}
.page_flow { line-height: 1.3;}
.page_flow .step_title {height:80px;}
.page_flow p {margin-bottom:8px !important;}
@media screen and (max-width: 800px) {
	.page_flow { height:auto !important;}
	.page_flow .step_title {margin-top: -2.5em;}
	.page_flow .elementor-widget-text-editor {margin-top: -1.5em !important;}
}

.image_sec h3 {margin-bottom:0.5em;}
.image_sec p {text-align:left;}

/* 健康診断：料金表　ここから */
.checkup_price h4 ,.checkup_price h5 ,.checkup_price h6 ,.checkup_price p {margin: 0 !important;}
.checkup_price h4 {font-size:28px !important;}
.checkup_price .details_title h5 {display: flex; align-items: center; gap: 8px;}
.checkup_price .details_title h5::before{ content: ""; width: 10px; height: 10px; background: var(--main_color); border-radius: 2px; flex: 0 0 10px; }

/* 全体 */
.price-list{
  list-style: none;
  margin: 0 !important;
  padding: 0;
}

/* 1行 */
.price-list li{
  display: flex;
  justify-content: space-between; /* 左右に振り分け */
  align-items: center;
  padding: 14px 0;
  border-bottom: 1px solid #e6e2da; /* 薄めの区切り */
}

/* 左：検査名 */
.price-list .item-name{
  font-size: 16px;
  font-weight: 600;
  color: #5c5446;
}

/* 右：金額 */
.price-list .item-price{
  font-size: 16px;
  font-weight: 700;
  color: #5c5446;
  text-align: right;
  white-space: nowrap;
}

/* 税表記 */
.price-list .tax{
  font-size: 13px;
  font-weight: 400;
  margin-left: 4px;
}

/* =========================
  SP：縦並び
========================= */
@media (max-width: 768px){
  .price-list li{
    flex-direction: column;   /* 縦並び */
    align-items: flex-start;  /* 左揃え */
    gap: 6px;
  }

  .price-list .item-price{
    text-align: left;
  }
}
/* 健康診断：料金表　ここまで */