@charset "utf-8";

/* ******************************************************************

	--style.css--

	1. Style setting
		1-1. Base styles
		1-2. Structure styles

	2. Layout setting
		2-1. Header styles
			・2-1_1. SpNavi styles
		2-2. GlobalNavi styles
		2-3. Main styles
		2-4. SideBar styles
		2-5. Footer styles
		2-6. bnrarea styles
		2-7. Page styles

	99. SP

****************************************************************** */

/*==================================================================
	1. Base setting
===================================================================*/
/* ------------------------------------------------------------------
	1-1. Base styles
-------------------------------------------------------------------*/
body {
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 16px;
	color: #3a260f;
	min-width: 1200px;
	font-weight: 400;/* Noto Sans JP Regular */
	position: relative;
/*-webkit-text-size-adjust: none;*/
}

a { color: #e18a1f; text-decoration: none; outline: none;}
a:hover { color: #d66d3a;}

a.underline { text-decoration: underline;}
a.underline:hover { text-decoration: none;}

.font_ns_s {
	font-family: 'Noto Serif JP', serif;
}

/* ------------------------------------------------------------------
	1-2. Structure styles
-------------------------------------------------------------------*/
.container { }
.main {
	/*padding-top: 50px;*/
}
.wrapper {
	width: 1200px;
	margin: 0px auto;
}
.inner {
	padding: 0 100px;
}

/*==================================================================
	2. Layout setting
===================================================================*/

/* ------------------------------------------------------------------
	2-1. Header styles
-------------------------------------------------------------------*/
header {
	background: #fcf8f3;
}
header .wrapper {
	display: flex;
	align-items: center;
	padding: 15px 0;
}
.logo img {
	max-height: 60px;
}
.header_info {
	margin-left: auto;
}
.header_catch {
	text-align: right;
	margin-bottom: 10px;
	font-size: 14px;
	font-weight: 700;
}
.header_guide {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 20px;
}
.header_guide_note {
	background: #FFF;
	border: 3px solid #e18a1f;
	padding: 3px 10px;
	text-align: center;
	font-size: 14px;
	font-weight: 700;
	color: #e18a1f;
}
.header_guide_note span {
	font-size: 14px;
}
.header_guide_tel {
	font-size: 28px;
	font-weight: 700;
}
.header_guide_tel span {
	font-size: 16px;
}

/* ------------------------------------------------------------------
	2-1_1. SpNavi styles
-------------------------------------------------------------------*/
.sp_nav_wrap,
.sp_fixnav_wrap,
.hamburger {
	display: none;
}

/* ------------------------------------------------------------------
	2-2. GlobalNavi styles
-------------------------------------------------------------------*/
.gnav {
	background: #fcf8f3;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 60px;
}
.gnav.fixed {
	background: rgba(252, 248, 243, 0.95);
	box-shadow: 0px 5px 5px -5px rgba(0, 0, 0, 0.1);
	position: fixed;
	top: 0;
	width: 100%;
	z-index: 11;
}
.gnav_main {
	position: relative;
}
.gnav_main a {
	display: block;
	color: inherit;
}
.gnav_main a:hover {
	font-weight: 700;
}
.gnav_main > a {
	padding: 18px 0;
	position: relative;
}
.gnav_main > a::before {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 10px;
	width: 100%;
	height: 2px;
	margin: auto;
	background: #e18a1f;
	transition: 0.15s ease-out;
	transform: scaleX(0);
	content: "";
	z-index: 1;
}
.gnav_main > a:hover::before {
	transform: scaleX(1);
}

.gnav_sub {
	background: rgba(255, 255, 255, .95);
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%);
	width: 200px;
	transition: 0.15s ease-out;
	visibility: hidden;
	opacity: 0;
	z-index: 11;
}
.gnav_main:hover .gnav_sub {
	visibility: visible;
	opacity: 1;
}
.gnav_sub li {
	border-bottom: 1px dotted #ccc;
	text-align: center;
	font-size: 14px;
}
.gnav_sub a {
	padding: 15px 0;
}
.gnav_sub a:hover {
	background: rgba(245, 229, 210, .8);
}

/* ------------------------------------------------------------------
	2-3. Main styles
-------------------------------------------------------------------*/
.block {
	padding: 60px 0;
}

.section_box {
	display: flex;
	gap: 30px;
}
.section_box.reverse {
	flex-direction: row-reverse;
}
.section_thm {
	max-width: 360px;
}
.section_body {
	flex: 1;
}

.flex_col {
	display: flex;
	flex-wrap: wrap;
	gap: 30px;
}
.flex_col_2 .flex_item {
	width: calc((100% - 30px) / 2);
}
.flex_col_3 .flex_item {
	width: calc((100% - 60px) / 3);
}

/* ------------------------------------------------------------------
	2-5. Footer styles
-------------------------------------------------------------------*/
.footer {
	background: #fcf8f3;
	position: relative;
}
.footer::after {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 5px;
	background: linear-gradient(to right, #e18a1f, #7fb59a);
	content: "";
	opacity: 0.5;
}
.footer_section_1 .wrapper {
	display: flex;
	gap: 50px;
	padding: 80px 0;
}
.footer_section_2 {
	background: #b38a5a;
	padding: 15px 0;
}
.footer_section_2 .wrapper {
	display: flex;
}
.footer_info {
	width: 50%;
}
.footer_logo {
	text-align: center;
	margin-bottom: 10px;
}
.footer_logo img {
	max-height: 160px;
}
.footer_logo_note {
	text-align: center;
	margin-bottom: 10px;
	font-size: 14px;
	font-weight: 700;
}
.footer_logo_title {
	font-size: 24px;
	font-weight: 700;
	line-height: 1;
}

.footer_info_add {
	text-align: center;
	margin-bottom: 30px;
}
.footer_info_note {
	background: #FFF;
	border: 2px solid #e18a1f;
	padding: 5px 20px;
	display: inline-block;
	text-align: center;
	margin-bottom: 10px;
	font-size: 14px;
	font-weight: 700;
	color: #e18a1f;
}
.footer_info_note span {
	font-size: 16px;
}
.footer_info_tel {
	text-align: center;
	margin-bottom: 10px;
	font-size: 32px;
	font-weight: 700;
}
.footer_info_tel span {
	font-size: 16px;
}
.footer_map {
	flex: 1;
}
.footer_map iframe {
	border-radius: 12px;
	width: 100%;
	height: 600px;
}

.fnav_sub {
	display: flex;
	gap: 20px;
}
.fnav_sub_item {
	font-size: 14px;
}
.fnav_sub_item a {
	color: #FFF;
}
.fnav_sub_item a:hover {
	text-decoration: underline;
}
.copyright {
	margin-left: auto;
	font-size: 12px;
	color: #FFF;
}

/* ------------------------------------------------------------------
	2-7. Page styles
-------------------------------------------------------------------*/

/* ▼▼▼ここに各コーダーが別途作成したCSS内のスタイルをドッキングしていく▼▼▼ */
/* ------------------------------------
	404系ページここから
------------------------------------*/
.no_page {
	padding: 10% 0;
	text-align: center;
}

/* ------------------------------------
	404系ページここまで
------------------------------------*/
/* ------------------------------------
	ページタイトル部_ここから
------------------------------------*/
.page_cover {
	background: url(../img/bg_page_heading.jpg) no-repeat center center;
	background-size: cover;
	padding: 60px 0;
	text-align: center;
	position: relative;
}
.page_cover_title {
	font-size: 36px;
	position: relative;
	z-index: 1;
}
.page_cover::before {
	background: rgba(255, 255, 255, .8);
	content: "";
	left: 0;
	height: 100%;
	width: 100%;
	position: absolute;
	top: 0;
	z-index: 0;
}

@media only screen and (max-width: 640px) {
.page_cover {
padding: 8% 0;
}
.page_cover_title {
font-size: 6.25vw;
}

}

/* ------------------------------------
	ページタイトル部_ここまで
------------------------------------*/

/* ------------------------------------
	追従パーツ_ここから
------------------------------------*/
#js_fltarea {
	position: fixed;
	right: 0;
	bottom: 300px;
	z-index: 9999;
}
.is-hidden {
	visibility: hidden;/* 指定の領域までスクロールしたら消す*/
	opacity: 0;
	transition: .3s;
}
#js_fltarea .btn {
	border-top-left-radius: 20px;
	border-top-right-radius: 0;
	border-bottom-left-radius: 20px;
	border-bottom-right-radius: 0;
	padding: 30px 20px;
	writing-mode: vertical-rl;
	text-orientation: upright;
	/*font-size: 16px;*/
	letter-spacing: 2px;
	box-shadow: 0px 5px 5px -5px rgba(0, 0, 0, 0.5);
}
#js_fltarea .btn i {
	margin-right: 0;
	margin-bottom: 10px;
}

@media only screen and (max-width: 640px) {
	#js_fltarea {
	visibility: hidden;
	}

}

/* ------------------------------------
	追従パーツ_ここまで
------------------------------------*/

/* ------------------------------------
	クリニック案内_ここから
------------------------------------*/
/* 診療時間表 */
.schedule_table {
	background: #FFF;
	border-spacing: 0;
}
.schedule_table th {
	font-weight: bold;
	width: 26%;
	min-width: 110px;
	border-bottom: 1px solid #ccc;
	padding: 8px 0;
	line-height: 1.2;
}
.schedule_table th span {
	font-size: 12px;
}
.schedule_table td {
	text-align: center;
	border-bottom: 1px solid #ccc;
	padding: 8px 0;
}
.schedule_table tr:first-of-type {
	background: #8a6841;
}
.schedule_table tr:first-of-type th,
.schedule_table tr:first-of-type td {
	border-bottom: none;
	color: #FFF;
}
.schedule_table .maru {
	color: #8a6841;
}
.schedule_note {
	margin-top: 10px;
	text-align: right;
}

/* アクセスMAP */
.map iframe {
	border-radius: 12px;
	width: 100%;
	height: 400px;
}

/* 施設写真 */
.photo_thm {
	margin-bottom: 20px;
}

@media only screen and (max-width: 640px) {
	.schedule_table th span {
	font-size: 3.125vw;
	}
	.schedule_note {
	margin-top: 3%;
	}
	
	.photo_thm {
	margin-bottom: 5%;
	}
	
}



/* ------------------------------------
	クリニック案内_ここまで
------------------------------------*/

/* ------------------------------------
	お知らせ系_ここから
------------------------------------*/
/*---------------*/
/*	記事一覧
/*---------------*/
.post_item {
	border-bottom: 1px solid #e6e6e6;
	padding: 20px 0;
}
.post_item a {
	display: flex;
	align-items: flex-start;
	gap: 20px;
	color: inherit;
}
.post_date {
	position: relative;
	top: 2px;
	font-size: 14px;
	color: #b38a5a;
}
.post_title {
	flex: 1;
}
.post_cat {
	background: #b38a5a;
	border-radius: 5px;
	min-width: 110px;
	padding: 3px 0;
	text-align: center;
	font-size: 12px;
	color: #FFF;
}
.post_item a:hover .post_title {
	color: #e18a1f;
}

/* カテゴリ色 */
.cat_1,
.cat_notice,
.cat_blog_2 {
	background: #4f6f5d;
}
.cat_2,
.cat_blog_3 {
	background: #e6a23c;
}
.cat_3,
.cat_blog_4 {
	background: #7fb59a;
}


/*---------------*/
/*	記事詳細
/*---------------*/
.article_info {
	display: flex;
	justify-content: flex-end;
	gap: 20px;
	margin-bottom: 10px;
}


@media only screen and (max-width: 640px) {
	/*---------------*/
	/*	記事一覧
	/*---------------*/
	.post_item {
	padding: 4% 0;
	}
	.post_item a {
	flex-wrap: wrap;
	align-items: center;
	gap: 2.5vw 3.75vw;
	}
	.post_date {
	top: 0;
	font-size: 3.125vw;
	}
	.post_title {
	flex: none;
	width: 100%;
	}
	.post_cat {
	min-width: 25vw;
	padding: 0.5vw 2.5vw;
	font-size: 2.5vw;
	}

	/*---------------*/
	/*	記事詳細
	/*---------------*/
	.article_info {
	gap: 3.75vw;
	margin-bottom: 2%;
	}


}

/* ------------------------------------
	お知らせ系_ここまで
------------------------------------*/




/* ------------------------------------
	お問い合わせ_ここから
------------------------------------*/
.form_heading {
	background: linear-gradient(90deg, rgba(34, 170, 224, 0.5), rgba(102, 255, 99, 0.5));
	width: 670px;
	margin: 0 auto 40px auto;
	padding: 3px 0;
	text-align: center;
	font-size: 32px;
	font-weight: 400;
	color: #FFF;
}
.form_list {
	display: flex;
	margin-bottom: 25px;
}
.form_item { }
.form_item.subject {
	display: flex;
	align-items: flex-start;
	width: 300px;
}
.form_item.body {
	flex: 1;
	word-break: break-all;
}

/* ibec追記分_ここから */
.label_multiselect {
	margin-left: 1em;
}
.label_multiselect_narrow {
	margin-left: 0.5em;
}
.bold {
	font-weight: bold;
}
/* ibec追記分_ここまで */

/* フォーム（ボタン・エラー表示エリア） */
.block_form_guide {
	background: linear-gradient(135deg, #22AAE0, #FFF599);
}
.form_guide {
	background: #FFF;
	width: 600px;
	margin: 40px auto 40px auto;/* ibec追記修正分 */
	padding: 30px 130px;
}
.form_guide_title {
	text-align: center;
	margin-bottom: 15px;
	font-size: 24px;
	font-weight: 700;
	color: #22AAE0;
}
.form_guide_title.error { }
.form_guide_title.error::before {
	content: "";
	background: url(../img/form_guide_arrow.png) no-repeat;
	background-size: contain;
	width: 46px;
	height: 40px;
	display: inline-block;
	vertical-align: middle;
	margin-right: 5px;
}

.block_form_guide .form_checkbox_wrap {
	text-align: center;
}
.block_form_guide .form_checkbox_parts {
	color: #FFF;
}
.block_form_guide a {
	color: inherit;
}
.block_form_guide .form_error {
	display: inline-block;
	color: #FFFF00;
}

/* ibec追記分_ここから */
.label_privacy {
	text-decoration: underline;
	font-weight: bold;
	margin: 0 -3px;
}
.label_privacy:hover {
	text-decoration: none;
}
.hide {
	display: none !important;
}
/* ibec追記分_ここまで */

/* 確認画面 */
.form_confirm {
	background: #FFF;
	border-radius: 40px;
	padding: 40px;
}

/* 完了画面 */
.form_message {
	background: #FFF;
	border-radius: 40px;
	padding: 80px 40px;
}
.form_message_text {
	text-align: center;
}

@media only screen and (max-width: 640px) {
	.form_heading {
	width: 100%;
	margin: 0 auto 6% auto;
	padding: 1% 0;
	font-size: 6.15vw;
	}
	.form_list {
	flex-direction: column;
	gap: 2.05vw;
	margin-bottom: 8%;
	}
	.form_item.subject {
	width: 100%;
	}
	
	/* 確認画面の基本情報は横並びに */
	.form_list.base {
	flex-direction: row;
	margin-bottom: 5%;
	}
	.form_list.base .form_item.subject {
	width: auto;
	}
	.form_list.base .form_item.body {
	text-align: right;
	}

	/* フォーム（ボタン・エラー表示エリア） */
	.form_guide {
	width: 86%;
	margin: 5% auto 5% auto;/* ibec追記修正分 */
	padding: 5%;
	}
	.form_guide_title {
	margin-bottom: 5%;
	font-size: 6.15vw;
	}
	.form_guide_title.error::before {
	width: 11.79vw;
	height: 10.26vw;
	display: block;
	margin: 0 auto 2% auto;
	}

	.block.block_form_guide {
	padding: 5% 7%;
	}
	.block_form_guide .form_checkbox_wrap {
	text-align: left;
	}
	.block_form_guide .form_error {
	text-align: left;
	}

	/* 確認画面 */
	.form_confirm {
	border-radius: 20px;
	padding: 5%;
	}
	
	/* 完了画面 */
	.form_message {
	border-radius: 20px;
	padding: 10% 5%;
	}
	.form_message_text {
	text-align: left;
	}
	
}

/* ------------------------------------
	お問い合わせ_ここまで
------------------------------------*/

/* ------------------------------------
	WPstyle_ここから
------------------------------------*/
.entry-content p {
	line-height: 1.8;
}
.entry-content img {
	border-radius: 12px;
}

/* ------------------------------------
	WPstyle_ここまで
------------------------------------*/
/* ▲▲▲ここに各コーダーが別途作成したCSS内のスタイルをドッキングしていく▲▲▲ */












/*==================================================================
	99. SP
===================================================================*/

@media only screen and (max-width: 640px) {

/*==================================================================
	1. Base setting
===================================================================*/
/* ------------------------------------------------------------------
	1-1. Base styles
-------------------------------------------------------------------*/
body {
	font-size: 3.75vw;/* 24px：画面幅640pxで換算 */
	min-width: 100%;
}

/* ------------------------------------------------------------------
	1-2. Structure styles
-------------------------------------------------------------------*/
.container {
margin-top: 60px;
}
.wrapper {
width: 90%;
}
.inner {
padding: 0;
}

.scroll-prevent {
	position: fixed;
	z-index: -1;
	width: 100%;
	height: 100%;
	top: 0;
	left: auto;
}

	/*==================================================================
	2. Layout setting
===================================================================*/

/* ------------------------------------------------------------------
	2-1. Header styles
-------------------------------------------------------------------*/
header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 999;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	-webkit-transition: -webkit-transform .4s ease;
	transition: -webkit-transform .4s ease;
	transition: transform .4s ease;
	transition: transform .4s ease, -webkit-transform .4s ease;
	height: 60px;
	box-shadow: 0px 5px 5px -5px rgba(0, 0, 0, 0.1);
}
.header--unpinned {
	-webkit-transform: translateY(-150%);
	transform: translateY(-150%);
}

header .wrapper {
width: 100%;
padding: 0;
}
.logo {
margin-left: 4%;
}
.logo img {
max-height: 40px;
}
.header_info {
display: none;
}


/* ------------------------------------------------------------------
	2-1_1. SpNavi styles
-------------------------------------------------------------------*/
.sp_nav_wrap {
	position: relative;
	display: block;
}
.sp_nav {
	background: rgba(245,239,230,.8);
	position: fixed;
	top: 60px;
	left: auto;
	width: 100%;
	height: 100%;
	overflow-y: scroll;
	padding: 4% 4% 25vw 4%;
	display: none;
	z-index: 999;
}
.sp_nav_inner {
	background: #FFF;
	border-radius: 12px;
	padding: 6% 8% 10% 8%;
}
.sp_nav a {
	display: block;
	color: inherit;
}
.sp_nav_main {
	border-bottom: 1px dotted #b38a5a;
	padding: 5% 10% 5% 0;
	position: relative;
	font-weight: 700;
}
.sp_nav_main:after {
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	content: "\f054";
	position: absolute;
	top: 50%;
	right: 3%;
	transform: translateY(-50%);
	display: inline-block;
}
.sp_nav_main.js_ac_trigger:after {
	content: "\2b";
}
.sp_nav_main.js_ac_trigger.open:after {
	content: '\f068';
}
.sp_nav_sub {
	padding: 5% 0;
	display: none;
}
.sp_nav_sub a {
	padding: 3% 3% 3% 8%;
	display: block;
	position: relative;
}
.sp_nav_sub a:before {
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	content: "\f138";
	position: absolute;
	top: 0.9em;
	left: 0;
	display: inline-block;
	color: #b38a5a;
}
.sp_nav_btn {
	margin-top: 8%;
}
.sp_nav_btn a {
	color: #FFF;
}


/* ------------------------------------
	ハンバーガーメニュー
------------------------------------*/
.hamburger {
	background: #b38a5a;
	display: block;
	position: absolute;
	top: 50%;
	right: 0;
	-webkit-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
	transform: translateY(-50%);
	width: 60px;
	height: 60px;
	cursor: pointer;
	z-index: 101;
}
.hamburger::after,
.hamburger::before {
	content: "";
	height: 2px;
	width: 40%;
	position: absolute;
	left: 0;
	right: 0;
	margin: 0 auto;
	background: #FFF;
	border-radius: 3px;
	-webkit-transition: all .3s ease;
	transition: all .3s ease;
}
.hamburger::before {
	top: 22px;
}
.hamburger::after {
	bottom: 22px;
}
.hamburger span {
	height: 2px;
	width: 40%;
	position: absolute;
	top: 50%;
	left: 0;
	right: 0;
	margin: 0 auto;
	-webkit-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
	transform: translateY(-50%);
	background: #FFF;
	border-radius: 3px;
/*
	-webkit-transition: all .3s ease;
	transition: all .3s ease;
*/
}
.hamburger.active {
	border: none;
}
.hamburger.active span {
	display: none;
}
.hamburger.active:before {
	-webkit-transform: rotate(135deg);
	transform: rotate(135deg);
	top: 29px;
}
.hamburger.active:after {
	-webkit-transform: rotate(-135deg);
	transform: rotate(-135deg);
	top: 29px;
}

/* ------------------------------------
	下部固定メニュー
------------------------------------*/
.sp_fixnav_wrap {
	background: #FFF;
	position: fixed;
	bottom: 0;
	width: 100%;
	z-index: 100;
	height: 52px;
	display: block;
}
.sp_fixnav {
	display: flex;
	height: 100%;
}
.sp_fixnav_item {
	background: #2f7754;
	width: 33.3%;
}
.sp_fixnav_item:nth-child(2) {
	opacity: 0.85;
}
.sp_fixnav_item:nth-child(3) {
	opacity: 0.7;
}
.sp_fixnav_item a {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 100%;
	font-weight: 700;
	line-height: 1;
	color: #FFF;
}
.sp_fixnav_item i {
	margin-right: 3px;
}

/* ------------------------------------------------------------------
	2-2. GlobalNavi styles
-------------------------------------------------------------------*/
.gnav {
display: none;
}

/* ------------------------------------------------------------------
	2-3. Main styles
-------------------------------------------------------------------*/
.block {
padding: 8% 0;
}

.section_box {
flex-direction: column;
gap: 5vw;
}
.section_box.reverse {
flex-direction: column;
}
.section_thm {
max-width: 100%;
}

.flex_col {
gap: 5vw;
}
.flex_col_2 .flex_item {
width: 100%;
}
.flex_col_3 .flex_item {
width: 100%;
}


/* ------------------------------------------------------------------
	2-5. Footer styles
-------------------------------------------------------------------*/
.footer_section_1 .wrapper {
flex-direction: column;
padding: 10% 0;
}
.footer_section_2 {
padding: 3% 0 70px 0;
}
.footer_section_2 .wrapper {
flex-direction: column;
align-items: center;
}

.footer_info {
width: 100%;
}
.footer_logo {
margin-bottom: 3%;
}
.footer_logo img {
max-height: 31.25vw;
}
.footer_logo_note {
margin-bottom: 3%;
font-size: 3.125vw;
}
.footer_logo_title {
font-size: 5.625vw;
}
.footer_info_add {
margin-bottom: 8%;
}
.footer_info_note {
padding: 1vw 2.5vw;
margin-bottom: 3%;
font-size: 3.125vw;
}
.footer_info_note span {
font-size: 3.75vw;
}
.footer_info_tel {
margin-bottom: 3%;
font-size: 8.125vw;
}
.footer_info_tel span {
font-size: 4.375vw;
}
.footer_map iframe {
height: 300px;
}
.fnav_sub {
display: none;
}
.copyright {
margin-left: 0;
font-size: 3.125vw;
}





}






