@charset "utf-8";
/*==================================================================

	renew.css
	2026年の全面改修で追加した部品。既存の style.css / sp.css の後に読み込む。
	・ロゴを h1 から外し、ページ名を h1 にするための置き換え
	・見出しの階層(h1 > h2 > h3)を正しくするための置き換え
	・要点ボックス、費用の表、よくある質問、予約導線、監修表示

==================================================================*/

/* ロゴ(旧 header h1) */
header .header_logo{
	position:absolute;
	top:40px;
	z-index:9999;
}
header .header_logo,
header .header_logo img{
	width:434px;
	height:162px;
}

/* 下層ページの見出し(旧 .mainvisual_headline h2) */
.mainvisual_headline h1{
	font-weight:600;
	font-size: 27px;
	line-height: 1.4;
	color: #6b5238;
}

/* ページ冒頭の飾り見出し(旧 h3.tit01) */
h2.tit01 {
	position: relative;
	margin-bottom: 30px;
	padding:0;
	letter-spacing: 0.15em;
	color: #5e4022;
	font-size: 29px;
	font-family: fot-tsukuardgothic-std,sans-serif;
	font-weight: 700;
	font-style: normal;
	line-height: 1.4;
	text-align: center;
}
h2.tit01 span{
	display:block;
	position:relative;
	letter-spacing: 2.5px;
	color: #ffc600;
	font-size:51px;
	font-family: roboto-condensed, sans-serif;
	font-weight: 300;
	font-style: normal;
	z-index:2;
}
#medical h2.tit01::before {
	position: absolute;
	width: 96px;
	height: 96px;
	top: -210px;
	bottom: 0;
	right: 0;
	left: 0;
	margin: auto;
	background-image: url(../images/icon_troble_2.png);
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
	z-index: 1;
	content: "";
}

/* 節の見出し(旧 #medical h4.tit01 span) */
h2.sec_tit {
	position: relative;
	margin-bottom: 18px;
	line-height: 1.4;
	text-align:left;
}
h2.sec_tit span{
	display: inline-block;
	position: relative;
	padding: 0.5em 1em 0.6em;
	line-height: 1.3;
	background: #5e4022;
	vertical-align: middle;
	border-radius: 25px 5px 5px 25px;
	letter-spacing: 0.15em;
	color: #fff;
	font-size: 20px;
	font-family: fot-tsukuardgothic-std,sans-serif;
	font-weight: 700;
	font-style: normal;
}
h2.sec_tit span::before {
	content: '●';
	color: #fff;
	margin-right: 10px;
	font-size: 17px;
	top:-1px;
	position:relative;
}

/* 小見出し(旧 h5.tit02 / h5.tit01) */
h3.sub_tit{
	position: relative;
	padding: 0 0 7px;
	margin: 30px 0 16px;
	line-height: 1.4;
	font-size: 130%;
	font-weight: bold;
	color: #5e4022;
	border-bottom: 2px solid #e0e0e0;
	font-family: fot-tsukuardgothic-std,sans-serif;
}
h3.sub_tit::after {
	position: absolute;
	content: "";
	display: block;
	border-bottom: 2px solid #ffc600;
	bottom: -2px;
	width: 20%;
}
h3.sub_tit:first-child{
	margin-top: 0;
}
.layout03 dd h3,
.list12 h3{
	color: #5e4022;
	font-size: 19px;
	font-family: fot-tsukuardgothic-std,sans-serif;
	font-weight: 700;
	font-style: normal;
}
.layout03 dd h3 em,
.list12 h3 em{
	margin-right:10px;
	color:#BDA087;
	font-family: roboto-condensed, sans-serif;
	font-size:30px;
	font-weight: normal;
	font-style: normal;
}
.list12 li{
	margin-bottom: 18px;
}
.list12 li:last-child{
	margin-bottom: 0;
}

#medical .text p + p,
#medical .text ul + p,
#medical .text p + ul{
	margin-top: 12px;
}
#medical .text a{
	text-decoration: underline;
}
#medical .text .btn02 a,
#medical .text .cta_box a{
	text-decoration: none;
}

/* width / height 属性を付けた画像が縦に伸びないようにする */
#medical .text img{
	max-width: 100%;
	height: auto;
}
.mouthpiece02 img{
	width: 100%;
}

/* 要点ボックス */
.summary_box{
	margin-bottom: 30px;
	padding: 26px 30px;
	background: #fffae5;
	border: 2px solid #ffc600;
	border-radius: 16px;
}
.summary_box .summary_tit{
	margin-bottom: 12px;
	color: #5e4022;
	font-size: 18px;
	font-family: fot-tsukuardgothic-std,sans-serif;
	font-weight: 700;
}
.summary_box dl{
	display: table;
	width: 100%;
	border-collapse: collapse;
}
.summary_box dl > div{
	display: table-row;
}
.summary_box dt,
.summary_box dd{
	display: table-cell;
	padding: 8px 0;
	border-bottom: 1px dotted #d9c9a8;
	vertical-align: top;
	line-height: 1.6;
}
.summary_box dl > div:last-child dt,
.summary_box dl > div:last-child dd{
	border-bottom: none;
}
.summary_box dt{
	width: 9em;
	padding-right: 1em;
	color: #5e4022;
	font-weight: bold;
	white-space: nowrap;
}
.summary_box dd strong{
	color: #d35400;
	font-size: 110%;
}

/* 費用などの表 */
.tb_fee{
	width: 100%;
	margin: 10px 0 12px;
	border-collapse: collapse;
	border-top: 1px solid #d9d2c7;
}
.tb_fee th,
.tb_fee td{
	padding: 12px 16px;
	border-bottom: 1px solid #d9d2c7;
	line-height: 1.6;
	text-align: left;
	vertical-align: middle;
}
.tb_fee thead th{
	background: #5e4022;
	color: #fff;
	font-weight: bold;
}
.tb_fee tbody th{
	width: 40%;
	background: #f7f1e6;
	color: #5e4022;
	font-weight: bold;
}
.tb_fee td small,
.tb_fee th small{
	display: block;
	font-size: 85%;
	font-weight: normal;
	color: #666;
}
.tb_fee tr.tb_fee_group th{
	width: auto;
	background: #ffe9a6;
}
.note_s{
	font-size: 90%;
	color: #555;
	line-height: 1.7;
}

/* リスク・副作用、注意書き */
.note_box{
	margin-top: 20px;
	padding: 22px 26px;
	background: #f6f4f1;
	border-left: 5px solid #cab8a6;
}
.note_box .note_tit{
	margin-bottom: 8px;
	color: #5e4022;
	font-weight: bold;
}

/* 流れ(横並びの矢印) */
.flow_line{
	margin: 10px 0 16px;
	padding: 14px 18px;
	background: #fffae5;
	border-radius: 8px;
	color: #5e4022;
	font-weight: bold;
	line-height: 1.9;
}

/* よくある質問 */
.faq_list > div{
	margin-bottom: 16px;
	border: 1px solid #e3d8c8;
	border-radius: 10px;
	overflow: hidden;
}
.faq_list > div:last-child{
	margin-bottom: 0;
}
.faq_list dt,
.faq_list dd{
	position: relative;
	padding: 16px 20px 16px 62px;
	line-height: 1.7;
}
.faq_list dt{
	background: #f7f1e6;
	color: #5e4022;
	font-weight: bold;
}
.faq_list dt h3{
	font-size: 100%;
	font-weight: bold;
}
.faq_list dt::before,
.faq_list dd::before{
	position: absolute;
	top: 14px;
	left: 18px;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	line-height: 30px;
	text-align: center;
	color: #fff;
	font-family: roboto-condensed, sans-serif;
	font-weight: bold;
}
.faq_list dt::before{
	background: #5e4022;
	content: "Q";
}
.faq_list dd::before{
	background: #ffc600;
	content: "A";
}

/* 関連ページ */
.related_links{
	display: flex;
	flex-wrap: wrap;
	gap: 10px 12px;
}
.related_links li a,
.related_links li span{
	display: inline-block;
	padding: 8px 18px;
	border: 1px solid #cab8a6;
	border-radius: 22px;
	background: #fff;
	color: #5e4022;
	text-decoration: none !important;
}
.related_links li a:hover{
	background: #fffae5;
}

/* 予約導線 */
.cta_box{
	padding: 30px;
	background: #fffae5;
	border: 2px solid #cab8a6;
	border-radius: 16px;
	text-align: center;
}
.cta_box .cta_tit{
	margin-bottom: 8px;
	color: #5e4022;
	font-size: 21px;
	font-family: fot-tsukuardgothic-std,sans-serif;
	font-weight: 700;
}
.cta_box .cta_btns{
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 14px;
	margin: 18px 0 14px;
}
.cta_box .cta_btns a{
	display: inline-block;
	min-width: 270px;
	padding: 14px 28px;
	border-radius: 32px;
	font-size: 18px;
	font-family: fot-tsukuardgothic-std,sans-serif;
	font-weight: 700;
	line-height: 1.4;
	transition: ease-in-out 0.2s;
}
.cta_box .cta_btns a small{
	display: block;
	font-size: 13px;
	font-weight: normal;
}
.cta_box .cta_web{
	background: #fde15e;
	border: 1px solid #fde15e;
	color: #5e4022;
}
.cta_box .cta_tel{
	background: #5e4022;
	border: 1px solid #5e4022;
	color: #fff;
}
.cta_box .cta_btns a:hover{
	opacity: 0.8;
}

/* 監修・更新日 */
.supervisor{
	margin-top: 30px;
	padding: 16px 22px;
	background: #fff;
	border: 1px solid #e3d8c8;
	border-radius: 8px;
	font-size: 92%;
	line-height: 1.8;
	color: #555;
}

/* 下書き用の印(公開前にすべて削除する) */
.draft-check{
	display: inline-block;
	margin: 0 4px;
	padding: 1px 8px;
	background: #fff200;
	border: 1px solid #e60012;
	color: #e60012;
	font-size: 90%;
	font-weight: bold;
	line-height: 1.5;
}

@media screen and (max-width:640px) {
	.sp_navi .sp_logo{
		text-align: center;
		width: 100%;
		padding: 8px 0;
		background-color: rgba(255,255,255,0.85);
	}
	.sp_navi .sp_logo span,
	.sp_navi .sp_logo img{
		display:block;
		width: auto;
		height: 56px;
		margin: 0 auto;
	}
	.sp_navi .sp_logo a{
		vertical-align: middle;
	}
	.sp_navi .sp_logo img{
		z-index: 9999;
		position:relative;
	}
	.mainvisual_headline h1{
		font-size: 20px;
		letter-spacing: 0.05em;
	}
	h2.tit01{
		width: 100%;
		box-sizing:border-box;
		font-size: 21px;
		margin-bottom:25px;
	}
	h2.tit01 span{
		font-size: 32px;
	}
	h2.sec_tit{
		text-align: center;
	}
	h2.sec_tit span{
		font-size: 17px;
		letter-spacing: 0.08em;
	}
	.summary_box{
		padding: 18px 16px;
	}
	.summary_box dl,
	.summary_box dl > div,
	.summary_box dt,
	.summary_box dd{
		display: block;
		width: auto;
	}
	.summary_box dt{
		padding: 8px 0 0;
		border-bottom: none;
	}
	.summary_box dd{
		padding: 0 0 8px;
	}
	.tb_fee,
	.tb_fee tbody,
	.tb_fee tr,
	.tb_fee th,
	.tb_fee td{
		display: block;
		width: auto;
	}
	.tb_fee thead{
		display: none;
	}
	.tb_fee tbody th{
		width: auto;
		border-bottom: none;
		padding: 8px 12px;
	}
	.tb_fee td{
		padding: 10px 12px 14px;
	}
	.note_box{
		padding: 16px;
	}
	.faq_list dt,
	.faq_list dd{
		padding: 14px 14px 14px 52px;
	}
	.faq_list dt::before,
	.faq_list dd::before{
		left: 12px;
	}
	.cta_box{
		padding: 22px 14px;
	}
	.cta_box .cta_btns a{
		min-width: 0;
		width: 100%;
	}
	.layout03 dl,
	.layout03 dt,
	.layout03 dd{
		display: block;
		width: auto;
	}
	.layout03 dt{
		margin-bottom: 10px;
	}
}

/*==================================================================
	診療ページ以外(院長紹介など)で使う部品
==================================================================*/
/* 白い箱(診療ページの #medical .text と同じ見た目) */
.renew_box .text{
	position: relative;
	margin-bottom: 50px;
	background: #fff;
	padding: 50px;
}
.renew_box .text img{
	max-width: 100%;
	height: auto;
}
.renew_box .text p + p,
.renew_box .text ul + p,
.renew_box .text p + ul{
	margin-top: 12px;
}
.renew_box .text a{
	text-decoration: underline;
}
.renew_box .text .cta_box a{
	text-decoration: none;
}

/* 院長紹介(旧 #doctor h3.tit01 / h4.tit01) */
#doctor h2.tit01{
	margin-bottom: 50px;
}
#doctor h2.tit01::before {
	position: absolute;
	width: 96px;
	height: 96px;
	top: -210px;
	bottom: 0;
	right: 0;
	left: 0;
	margin: auto;
	background-image: url(../images/icon_greeting.png);
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
	z-index: 1;
	content: "";
}
#doctor .doctor_catch{
	margin-bottom: 18px;
	line-height: 1.4;
}
#doctor .doctor_catch span {
	display: inline-block;
	position: relative;
	letter-spacing: 2.5px;
	color: #fff;
	font-size: 24px;
	font-family: fot-tsukuardgothic-std,sans-serif;
	font-weight: 700;
	background: #5e4022;
	padding: 5px 5px 5px 10px;
	margin: 0 0 10px;
}
h2.carr_tit{
	margin-bottom: 7px;
	letter-spacing: 0.15em;
	line-height: 1.4;
	color: #5e4022;
	font-size: 19.5px;
	font-family: fot-tsukuardgothic-std,sans-serif;
	font-weight: 700;
}

@media screen and (max-width:640px) {
	.renew_box .text{
		padding: 40px 6%;
	}
	#doctor .doctor_catch span {
		font-size: 4.5vmin;
		margin-bottom: 5px;
	}
}

/* 横に長い表(スマホでは横スクロール) */
.table_scroll{
	overflow-x: auto;
}
.table_scroll .tb_fee th,
.table_scroll .tb_fee td{
	white-space: nowrap;
	text-align: center;
}
@media screen and (max-width:640px) {
	.table_scroll .tb_fee{ display: table; }
	.table_scroll .tb_fee thead{ display: table-header-group; }
	.table_scroll .tb_fee tbody{ display: table-row-group; }
	.table_scroll .tb_fee tr{ display: table-row; }
	.table_scroll .tb_fee th,
	.table_scroll .tb_fee td{ display: table-cell; padding: 8px 10px; }
}

/*==================================================================
	トップ階層のページの飾り見出し(旧 #xxx h3.tit01::before のアイコン)
==================================================================*/
#first h2.tit01::before,
#access h2.tit01::before,
#faq h2.tit01::before,
#staff h2.tit01::before,
#price h2.tit01::before,
#clinic h2.tit01::before {
	position: absolute;
	width: 96px;
	height: 96px;
	top: -210px;
	bottom: 0;
	right: 0;
	left: 0;
	margin: auto;
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
	z-index: 1;
	content: "";
}
#first h2.tit01::before{ background-image: url(../images/icon_first.png); }
#access h2.tit01::before{ background-image: url(../images/icon_access.png); }
#faq h2.tit01::before{ background-image: url(../images/icon_first.png); }
#staff h2.tit01::before{ background-image: url(../images/icon_specialist.png); }
#price h2.tit01::before{ background-image: url(../images/icon_price.png); }
#clinic h2.tit01::before{ background-image: url(../images/icon_clinic.png); }
#first, #access, #faq{
	background-color: #fffae5;
	padding-bottom: 100px;
}

/* スタッフ紹介(旧 .staff_list dl dd h4) */
.staff_list dl dd h3{
	font-size:22px;
	text-align:left;
	line-height:1.3;
	letter-spacing:0.08em;
	font-weight:600;
	font-family: fot-tsukuardgothic-std,sans-serif;
}
.staff_list dl dd h3 span{
	display:block;
	font-size:15px;
	color: #ffc600;
	font-family:roboto-condensed, sans-serif;
	letter-spacing:0.01em;
	padding: 5px 0 25px;
	font-weight: 400;
}

/* 診療案内の一覧 */
.text_medindex h2.sec_tit span{
	font-size: 18px;
}
.text_medindex p{
	font-size: 15px;
}
.trouble_list{
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px 20px;
}
.trouble_list li{
	padding: 12px 16px;
	background: #fffae5;
	border-radius: 8px;
	line-height: 1.6;
}

/* アクセスの地図 */
.renew_box .text .access_map dd{
	height: 420px;
}

@media screen and (max-width:640px) {
	.staff_list dl dd h3{
		font-size: 18px;
	}
	.trouble_list{
		grid-template-columns: 1fr;
	}
	h2.sec_tit span{
		display: table;
		margin: 0 auto;
	}
}

/* 診療案内の一覧: 冒頭に案内文の箱を足したため、左右の余白の付け先を入れ替える */
.text_medindex:nth-child(2n){
	margin-right: 0;
}
.text_medindex:nth-child(2n+1){
	margin-right: 2.4%;
}
@media screen and (max-width:640px) {
	.text_medindex:nth-child(2n+1){
		margin-right: 0;
	}
}

/*==================================================================
	トップページ
==================================================================*/
.mainvisual_catch h1{
	font-size:30px;
	text-shadow:0 0 5px rgba(255,255,255,0.9), 0 0 12px rgba(255,255,255,0.9);
	line-height:1.6;
	letter-spacing:0.05em;
	color: #5e4022;
	font-family: fot-tsukuardgothic-std, sans-serif;
	font-weight: 700;
}
.mainvisual_catch p.mv_sub{
	margin-top: 10px;
	font-size: 14px;
	text-align: left;
	letter-spacing: 0.05em;
}
.top_pillars{
	padding: 90px 0 20px;
	background: #fffae5;
}
.top_pillars h2.tit01{
	font-size: 26px;
}
.top_pillars_lead{
	margin-bottom: 30px;
	text-align: center;
	line-height: 2;
}
.top_pillars_lead strong{
	background: linear-gradient(transparent 60%, #ffe27a 0%);
}
.top_facts{
	display: flex;
	justify-content: center;
	gap: 16px;
	margin-bottom: 40px;
}
.top_facts li{
	width: 170px;
	padding: 16px 10px;
	background: #fff;
	border: 2px solid #ffc600;
	border-radius: 14px;
	text-align: center;
	line-height: 1.5;
}
.top_facts li span{
	display: block;
	font-size: 14px;
	color: #5e4022;
}
.top_facts li strong{
	font-size: 26px;
	color: #d35400;
	font-family: fot-tsukuardgothic-std, sans-serif;
}
.top_pillars_list{
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	margin-bottom: 30px;
}
.top_pillar,
.top_trust > div{
	padding: 30px 28px;
	background: #fff;
	border-radius: 16px;
	border: 2px solid #cab8a6;
}
.top_pillar h3,
.top_trust h3{
	margin-bottom: 12px;
	padding-bottom: 10px;
	border-bottom: 3px solid #ffc600;
	color: #5e4022;
	font-size: 20px;
	line-height: 1.4;
	font-family: fot-tsukuardgothic-std, sans-serif;
	font-weight: 700;
}
.top_pillar p,
.top_trust p{
	margin-bottom: 12px;
	font-size: 15px;
	line-height: 1.8;
}
.top_pillar .list03{
	margin-bottom: 16px;
	font-weight: bold;
	color: #5e4022;
}
.top_pillar .btn02,
.top_trust .btn02{
	margin-top: 8px;
}
.top_pillar .btn02 a,
.top_trust .btn02 a{
	padding: 8px 26px;
	font-size: 15px;
}
.top_trust{
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}
.top_faq{
	padding: 60px 0 40px;
}
.top_faq h2.tit01{
	margin-bottom: 30px;
}
@media screen and (max-width:640px) {
	#mainvisual .mainvisual_catch h1{
		font-size: 21px;
	}
	.mainvisual_catch p.mv_sub{
		font-size: 12px;
	}
	.top_pillars{
		padding: 50px 4% 10px;
	}
	.top_pillars .box1{
		width: auto;
	}
	.top_pillars h2.tit01{
		font-size: 19px;
	}
	.top_pillars_lead{
		text-align: left;
	}
	.top_facts{
		flex-wrap: wrap;
		gap: 10px;
	}
	.top_facts li{
		width: calc(50% - 5px);
		padding: 10px 6px;
	}
	.top_facts li strong{
		font-size: 21px;
	}
	.top_pillars_list,
	.top_trust{
		grid-template-columns: 1fr;
		gap: 16px;
	}
	.top_pillar,
	.top_trust > div{
		padding: 22px 18px;
	}
	.top_faq{
		padding: 40px 0 20px;
	}
}

/* 医院案内 設備紹介: カードの高さと画像の大きさをそろえる(2026-10-04 先方の指摘) */
.facilities_equip3 dl{
	height: auto !important;
}
.facilities_equip3 dl dt{
	height: 240px;
	overflow: hidden;
	background: #fff;
}
.facilities_equip3 dl dt img{
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.facilities_equip3 dl dd{
	min-height: 64px;
}
.img_flex02 li{
	display: flex;
	align-items: center;
	justify-content: center;
	background: #fff;
}
@media screen and (max-width:640px) {
	.facilities_equip3 dl dt{
		height: auto;
	}
}
