@charset "UTF-8";

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

	Base 基本指定

*********************************************************************/
/*テキストドラッグ選択時カラー
----------------------------------------------*/
::-moz-selection { background: #F77246; color: #fff; text-shadow: none; }
::selection { background: #F77246; color: #fff; text-shadow: none; }

html{
	-webkit-text-size-adjust: none;
}

body{
	font-family: "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
	height: 100%;
	color: var(--text-color);
	background: #fff url(/images/common/grey.png);
	position: relative;
}

/*フォント font
----------------------------------------------*/
.cardo{
	font-family: 'Cardo', serif;
}
.wf-sawarabimincho { font-family: "Sawarabi Mincho"; }
.wf-sawarabigothic { font-family: "Sawarabi Gothic"; }

.serif01{
	font-family: 'Cardo', "Sawarabi Mincho", "ヒラギノ明朝 ProN W3", "HiraMinProN-W3", "HG明朝E", "ＭＳ Ｐ明朝", "MS PMincho", "MS 明朝", serif;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;

}


/*リンク link
----------------------------------------------*/
a:link   {color:#1fac9d; text-decoration:underline;}
a:visited{color:#1fac9d; text-decoration:underline;}
a:hover  {text-decoration:none;}
a:active {text-decoration:none;}

a:hover img {
	opacity:0.85;
}

a[target="_blank"]{
	position: relative;
	display: inline-block;
}


.contents a[target="_blank"]:after{
	font-family: 'Font Awesome 5 Free';
	content: '\f35d';
	font-weight: 900;
	font-size: 0.9em;
	margin: 0 3px;
}

@media only screen and (-webkit-min-device-pixel-ratio: 1.5),(min-resolution: 1.5dppx) {


}

p{
	line-height: 1.6;
	padding-bottom: 1.3em;
	font-size: 120%;
}

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

共通クラス

***********************************************/
.baseWidth01{
	width: 90%;
	max-width: 1100px;
	margin: 0 auto;
}


/*
デバイス別表示切り替え
タブレット用クラスは「.only」と一緒に使用することでスマホ用表示幅で非表示にできます。
----------------------------------------------*/
.brPC{
	display: block;
}

.forPC_block{
	display: block;
}

.forPC_inline{
	display: inline;
}

.forPC_inlineBlock{
	display: inline-block;
}

.forTablet_block,
.forTablet_inline,
.forTablet_inlineBlock{
	display: none;
}

.forMobile_block,
.forMobile_inline,
.forMobile_inlineBlock{
	display: none;
}

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

	.brPC{
		display: inline;
	}

	.forPC_block,
	.forPC_inline,
	.forPC_inlineBlock{
		display: none;
	}

	.forTablet_block{
		display: block;
	}

	.forTablet_inline{
		display: inline;
	}

	.forTablet_inlineBlock{
		display: inline-block;
	}

}

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

	.only.forTablet_block,
	.only.forTablet_inline,
	.only.forTablet_inlineBlock{
		display: none;
	}

	.forMobile_block{
		display: block;
	}

	.forMobile_inline{
		display: inline;
	}

	.forMobile_inlineBlock{
		display: inline-block;
	}

}

/*画像の回り込み
----------------------------------------------*/
.leftImage,
.rightImage,
.centerImage{
	overflow: hidden;
	padding-bottom: 0.8em;
}

.bothImage{
	display: flex;
	justify-content: space-between;
}

.leftImage figure,
.rightImage figure{
	overflow: hidden;
}

.leftImage figure,
.rightImage .leftImage figure,
.centerImage .leftImage figure{
	float: left;
	margin-right: 20px;
	padding-bottom: 1em;
}

.rightImage figure,
.leftImage .rightImage figure,
.centerImage .rightImage figure{
	float: right;
	margin-left: 20px;
	padding-bottom: 1em;
}

.centerImage figure,
.leftImage .centerImage figure,
.rightImage .centerImage figure{
	width: 100%;
	text-align: center;
	margin-bottom: 1em;
}

.leftImage figcaption,
.rightImage figcaption{
	padding: 0.2em 0;
	font-size: 0.9em;
	color: #666;
}

.figcaption01{
	width: 330px;
}
.figcaption02{
	width: 250px;
}
.figcaption03{
	width: 200px;
}

.centerImage figcaption{
	padding: 0.2em 0;
	font-size: 0.9em;
	color: #666;
}

.bothImage figure{
	width: 300px;
	padding-bottom: 0.8em;
}

.bothImage figcaption{
	padding: 0.2em 0;
	font-size: 0.9em;
	color: #666;
}


@media screen and (max-width: 1019px) {
	.centerImage figure{
		margin-bottom: 1em;
	}

	.centerImage figure img{
		width: 100%;
		height: auto;
	}

	.leftImage figure{
		margin-right: 1em;
	}

	.rightImage figure{
		margin-left: 1em;
	}

	.leftImage figure,
	.rightImage figure{
		width: 240px;
		height: 182px;
		padding: 0;
	}

	.bothImage figure{
		width: 210px;
		height: auto;
	}

	.figcaption01{
		width: 240px;
	}
	.figcaption02{
		width: 240px;
	}

	.leftImage figure img,
	.rightImage figure img,
	.bothImage figure img{
		width: 100%;
		height: auto;
	}

}

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

	.leftImage figure,
	.rightImage figure{
		float: none;
		margin: 0 auto 0.5em;
	}

	.bothImage figure{
		width: 49%;
		height: auto;
	}

}


.blockquote blockquote{
	width: 600px;
	margin: 15px auto;
	line-height: 1.6;
	font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
	display: block;
	padding: 5px 10px;
	background: #ddd;
}

.blockquote blockquote p{
	padding-bottom: 0;
}

.blockquote figcaption{
	width: 600px;
	margin: 0 auto 30px;
	color: #999;
	font-size: 0.9em;
}

.separate{
	padding: 10px 15px;
	background: #ddd;
	margin-bottom: 30px;
}

/*電話番号*/
.tel,
.fax{
	font-size: 30px;
	padding: 5px 0 3px;
	font-weight: bold;
}

.tel02{
	font-size: 24px;
	padding: 5px 0 3px 24px;
	color: #fff !important;
	font-weight: bold;
	background: url(/images/common/icon_tel02.png) left center no-repeat;
}

.tel > span,
.tel02 > span,
.fax > span{
	font-size: 75%;
}


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

	.tel,
	.tel02,
	.fax{
		font-size: 18px;
	}

}


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

ヘッディング

***********************************************/
/*ページ自身のh1
----------------------------------------------*/
.pageH1{
	width: 980px;
	margin: 0 auto;
	padding: 0.3em 10px;
	font-size: 0.8em;
}

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

	.pageH1{
		width: 100%;
		padding: 0.3em 20px;
		box-sizing: border-box;
	}

}

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

	.pageH1{
		font-size: 0.7em;
	}

}

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

	.pageH1{
		padding: 0.3em 10px;
	}

}

/*****************************************
	共通 common
	modified in 03/2025 by worldest
*****************************************/

:root {
	--main-color: #0B6FAD;
	--main-color2: #549ac6;
	--main-color3: #e7f1f7;
	--main-color4: #85B7D6;
	--accent-color: #F5CB1A;
	--accent-color2: #FEFAE8;
	--text-color: #4d4d4d;
}

.contents {
	margin-top: 0;
}

.main>section:last-child,
.contents>section:last-child {
	padding-bottom: 100px;
}

.sectionTitle {
	position: relative;
	width: 100%;
	text-align: center;
	font-size: 2rem;
	padding-bottom: 10px;
	margin-bottom: 50px;
}

.sectionTitle::after {
	content: '';
	display: block;
	position: absolute;
	bottom: 0;
	width: 100px;
	height: 5px;
	left: 50%;
	transform: translateX(-50%);
	background: var(--main-color);
}


.sectionCommon * {
	color: var(--text-color);
}

.sectionCommon p,
.sectionCommon div {
	font-size: initial;
	font-size: calc(18/16 * 1rem);
	line-height: 1.8;
}

.sectionCommon ul {
	list-style: none;
	margin: 0;
	padding: 0;
	margin-top: .5rem;
}

.sectionCommon img {
	width: 100%;
	object-fit: cover;
	height: auto;
}

.sectionCommon {
	width: 100%;
	margin: 0 auto;
	padding-top: 100px;
	background-color: #FFFFFF;
	overflow: hidden;
}

.clinicGreeting,
.clinicAbout,
.mapSection,
.featuresSection,
.facilitySection,
.raSection01,
.osteoporosisSection01,
.sportsInjuriesSection01 {
	background-color: transparent;
}

.sectionCommon>.sectionInner {
	max-width: 1100px;
	width: calc(100% - 40px);
	margin: 0 auto;
}

.sectionCommon .sectionInner.paddingBottomLarge {
	padding-bottom: 100px;
}

.sectionCommon .accent {
	font-weight: bold;
	font-size: 1.2em;
	color: var(--main-color);
}

.mainColor01 {
	color: var(--main-color);
}

.mainColor02 {
	color: var(--main-color2);
}

.textColor {
	color: var(--text-color);
}

.mainColor01Bg {
	background-color: var(--main-color);
}

.mainColor02Bg {
	background-color: var(--main-color2);
}

.mainColor01Border {
	border-color: var(--main-color);
}

.textColorBorder {
	border-color: var(--text-color);
}

.padding0 {
	padding: 0;
}

.fontWeightBold {
	font-weight: bold;
}

.displayFlex {
	display: flex;
}

.rowReverse {
	flex-direction: row-reverse;
}

.flexListItemWrapper>div {
	min-width: calc(33.3% - 1rem);
}

.flexDirectionColumn {
	flex-direction: column;
}

.flexContainer {
	gap: 40px;
}

.flexContainer>div {
	width: 50%;
}

.headerDesignTopBorder {
	position: relative;
	font-size: calc(30/16 * 1rem);
	margin-bottom: 1rem;
	padding-top: .6rem;
	line-height: 1.5;
}

.headerDesignTopBorder.marginLarge {
	margin-bottom: 2rem;
}

.headerDesignTopBorder:before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 300px;
	height: 2px;
	background-color: var(--main-color);
}

.headerDesignLeftBorder {
	border-left: 4px solid var(--main-color);
	font-size: calc(23/16 * 1rem);
	font-weight: bold;
	padding: 0.3rem 0 0.3rem 1rem;
	margin-bottom: 1.5rem;
}

.headerDesignLeftBorder.marginLarge {
	margin-top: calc(100/16 * 1rem);
}

.headerDesignBottomBorder {
	padding-bottom: .5rem;
	margin-bottom: 1rem;
	font-weight: bold;
	border-bottom-style: solid;
	border-bottom-width: 1px;
}

.headerDesignBottomBorder.marginLarge {
	margin-bottom: 2rem;
}

.headerDesignTopBorder>span,
.headerDesignLeftBorder>span,
.headerDesignBottomBorder>span {
	font-size: 60%;
	color: #e53935;
	margin-left: 1rem;
}




.shadowBox {
	box-shadow: 0 3px 8px rgba(0, 0, 0, .4);
	padding: 1.5rem;
	background-color: #FFFFFF;
}

.pageLinkBtn {
	display: inline-block;
	position: relative;
	background-color: var(--main-color4);
	color: #FFFFFF;
	height: 40px;
	border-radius: 20px;
	box-sizing: border-box;
	padding: 0 40px;
	text-align: center;
	transition: background-color 0.3s;
	font-size: 1rem;
	line-height: 40px;
	align-self: center;
}

.pageLinkBtn::before {
	content: '＞';
	position: absolute;
	left: 1rem;
}

.pageLinkBtn::after {
	content: '' !important;
}

.pageLinkBtn:hover {
	background-color: var(--main-color2);
}

.pageLinkBtn,
.pageLinkBtn:link,
.pageLinkBtn:visited {
	color: #FFFFFF;
	text-decoration: none;
}

/*汎用ヘッディング heading
----------------------------------------------*/
.sectioningTitle{
	font-size: 2em;
	font-weight: bold;
	line-height: 1;
	padding: 12px 0;
	margin: 60px 0 30px;
	position: relative;
}

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

	.sectioningTitle{
		font-size: 1.4em;
		padding: 10px 0;
		margin: 30px 0 15px;
		background-size: 24px auto;
	}

}

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

	.sectioningTitle{
		font-size: 1.3em;
		line-height: 1.2;
		padding: 10px 0;
		margin: 30px 0 15px;
		background-size: 20px auto;
	}

}

.subPageTitle{
	font-size: 2.5rem;
	font-weight: bold;
	padding: 0 30px;
	line-height: 1.1;
	color: #fff;
	text-shadow: 0 1px 8px rgba(0,0,0,.5);
	filter:alpha(opacity=0);
	-moz-opacity: 0;
	opacity: 0;
}

.subPageTitle span{
	display: inline-block;
	padding: 0.3em 4em;
	border-bottom: solid 1px #fff;
}

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

	.subPageTitle{
		font-size: 2rem;
	}

}

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

	.subPageTitle{
		font-size: 1.6rem;
		padding: 0 50px;
	}

	.subPageTitle span{
		display: block;
		padding: 0.3em 0;
	}

}

/*.transition{
	-webkit-transition: all 0.3s ease-out;
	-moz-transition: all 0.3s ease-out;
	-o-transition: all 0.3s ease-out;
	transition: all 0.3s ease-out;
}*/


.lineTitle01{
	border-left: 3px solid #2F5C79;
	padding: 3px 0 0 15px;
	margin: 60px 0 30px;
	font-size: 2em;
	font-weight: bold;
}

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

	.lineTitle01{
		padding: 2px 0 0 10px;
		margin: 40px 0 20px;
		font-size: 1.6em;
	}

}


.borderTitle01{
	margin: 20px auto 1em;
	padding: 1rem 0 0.5rem;
	border-bottom: solid 1px var(--main-color);
	color: var(--main-color);
	font-weight: bold;
	box-sizing: border-box;
	max-width: 300px;
}

.borderTitle01 span {
	font-size: calc(36/16 * 1rem);
}


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

}

.borderTitle02{
	margin: 20px auto 1em;
	padding: 15px 0 5px;
	color: #4D4D4D;
	font-size: 2.5rem;
	font-weight: bold;
	box-sizing: border-box;
	text-align: center;
}

.borderTitle02::after{
	content: '';
	display: block;
	margin: 0.2em auto;
	width: 80px;
	height: 5px;
	background: #0B6FAD;
}

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

	.borderTitle02{
		font-size: 2rem;
	}

}

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

	.borderTitle02{
		font-size: 1.8rem;
	}

}

.mainTitle01{
	padding: 3px 0 0;
	margin: 60px 0 30px;
	font-size: 2em;
	font-weight: bold;
}

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

	.mainTitle01 {
		padding: 2px 0 0;
		margin: 40px 0 20px;
		font-size: 1.6em;
	}

}

.bgTitle01{
	font-size: 1.3em;
	font-weight: bold;
	margin-bottom: 1em;
	padding: 0.5em 1em;
	line-height: 1;
	color: #fff;
	background: #0B6FAD;
}


.bgTitle02{
	font-size: 1em;
	margin-bottom: 1em;
	font-weight: bold;
}

.bgTitle02 span{
	display: inline-block;
	padding: 0.2em 1.5em;
	color: #fff;
	background: #0B6FAD;
}

.boldTitle01{
	font-size: 1.6em;
	font-weight: bold;
	padding: 10px 0;
	color: #2F5C79;
}

.questionTitle{
	width: 470px;
	padding: 15px 180px 15px 30px;
	font-size: 1.2em;
	font-weight: bold;
	position: relative;
	background: url(/images/common/icon_arrow01.png) left center no-repeat;
}

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

	.questionTitle{
		width: 100%;
		padding: 15px 30px;
		box-sizing: border-box;
	}

}

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

	.questionTitle{
		font-size: 1.1em;
	}

}

@media only screen and (-webkit-min-device-pixel-ratio: 1.5),(min-resolution: 1.5dppx) {

	.questionTitle{
		background: url(/images/common/icon_arrow01@2x.png) left center no-repeat;
		background-size: 18px auto;
	}

}


.numTitle{
	position: relative;
	font-size: 1.2em;
	font-weight: bold;
	padding: 0 0 0 24px;
}

.numTitle.num01:after{
	position: absolute;
	left: 0;
	top: 0;
	content: '1.';
}

.numTitle.num02:after{
	position: absolute;
	left: 0;
	top: 0;
	content: '2.';
}

.numTitle.num03:after{
	position: absolute;
	left: 0;
	top: 0;
	content: '3.';
}

.numTitle.num04:after{
	position: absolute;
	left: 0;
	top: 0;
	content: '4.';
}

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

テーブル table

***********************************************/
/*医院概要テーブル*/
.table01{
	width: 678px;
	margin: 20px auto 5px;
	border: 1px solid #A6ABBF;
	border-collapse: collapse;
	border-spacing: 0;
}

.table01 th {
	width: 150px;
	padding: 20px 10px;
	background: #C8CFDE;
	border: 1px solid #A6ABBF;
	line-height: 1.2;
	text-align: center;
	vertical-align: middle;
	font-weight: bold;
}

.table01 td {
	padding: 20px;
	border: 1px #A6ABBF solid;
	vertical-align: middle;
}

.table02,
.table03,
.table05{
	width: 678px;
	margin: 20px auto 5px;
	border: 1px solid #A6ABBF;
	border-collapse: collapse;
	border-spacing: 0;
}

.table02 th,
.table03 th,
.table05 th {
	width: 180px;
	padding: 10px 5px;
	background: #ded4c8;
	border: 1px solid #A6ABBF;
	line-height: 1.2;
	text-align: center;
}

.table02 td,
.table03 td,
.table05 td {
	padding: 10px 15px;
	border: 1px #A6ABBF solid;
	background: #fff;
	vertical-align: middle;
}

.table02 tr > td:last-child,
.table05 tr > td:last-child{
	text-align: center;
}

/*経歴・略歴テーブル*/
.table04 table{
	width: 100%;
	border: none;
	margin-bottom: 30px;
}

.table04 th{
	border-right: solid 1px #A6ABBF;
	padding: 0.5em;
	width: 130px;
	text-align: center;
}

.table04 td{
	padding: 0.5em 2em;
}

/*受付時間テーブル
----------------------------------------------*/
.timeTable{
	width: 100%;
	margin: 20px auto 5px;
	border: 1px solid #0B6FAD;
	border-collapse: collapse;
	border-spacing: 0;
	color: #0B6FAD;
}

.timeTable tbody{
	background-color: #fff;
}

.timeTable thead{
	background: #0B6FAD;
}

.timeTable th {
	padding: 10px 4px;
	border-left: 1px solid #E6E6E6;
	color: #fff;
	line-height: 1.2;
	text-align: center;
	vertical-align: middle;
}

.timeTable td {
	width: 50px;
	height: 40px;
	padding: 10px 3px;
	border: solid #E6E6E6;
	border-width: 1px 0 0 1px;
	text-align: center;
	vertical-align: middle;
	line-height: 0.9;
}

.enable{
	color: #f33;
}

.able{
	color: #0B6FAD;
	font-weight: bold;
	font-size: 1.5em;
}

.able img{
	/*width: 19px;*/
	height: auto;
}

.addText01{
	font-size: 0.75rem;
	letter-spacing: -1px;
}

.rowheader{
	width: 150px;
}

.timeTable th.rowheader{
	border-left: 1px solid #0B6FAD;
}

.timeTable td.rowheader{
	border-left: 1px solid #0B6FAD;
}

.rowheader span,
.rowheader small{
	display: block;
	width: 100%;
	margin: 0 auto;
	padding: 0;
	text-align: center;
}

.rowheader small{
	font-size: 1em;
}

.postscript{
	margin: 0;
	overflow: hidden;
	display: none;
}

.postscript dt,
.postscript dd{
	display: inline-block;
	margin: 0;
	vertical-align: bottom;
	font-size: 0.9em;
}

.postscript dd{
	padding-bottom: 3px;
}

.postscript dd:first-child{
	padding-right: 3px;
}

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

	.timeTable{
		width: 100%;
		margin: 20px auto 5px;
	}

}

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

	.timeTable th {
		padding: 8px 3px;
	}

	.timeTable td {
		width: 40px;
		padding: 8px 3px;
		font-size: 0.8em;
	}

	.rowheader{
		width: 100px;
	}

	.rowheader span,
	.rowheader small{
		width: 98px;
	}

}

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

	.timeTable th {
		padding: 4px;
		font-size: 0.8em;
	}

	.timeTable td {
		width: 15px;
		padding: 4px;
		font-size: 0.8em;
	}

	.rowheader{
		width: auto;
	}

	.rowheader span,
	.rowheader small{
		width: 70px;
	}

	.rowheader small{
		font-size: 0.7em;
	}

	.saturdayTime{
		height: 26px;
		background: url(/images/common/timetable_icon_star01@2x.png) center center no-repeat;
		background-size: 26px auto;
	}

	.sundayTime{
		height: 26px;
		background: url(/images/common/timetable_icon_star02@2x.png) center center no-repeat;
		background-size: 26px auto;
	}

	.saturdayTime span,
	.sundayTime span{
		display: none;
	}

	.postscript{
		display: block;
	}

	.able img,
	.limitedDay img+img{
		width: 15px;
		height: auto;
		vertical-align: middle;
	}

	.week24{
		width: 17px;
		height: auto;
		vertical-align: middle;
	}

	.week135{
		width: 22px;
		height: auto;
		vertical-align: middle;
	}

}

.scheduleNote{
	padding: 0px 0 0 20px;
	line-height: 1.5;
}

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

	.scheduleNote{
		font-size: 0.8em;
	}

}

.saturday{
	background-color: #A8C4FF;
}

.sunday{
	background-color:#FF8E8E;
}


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

	.table01,
	.table02,
	.table03,
	.table04,
	.table05{
		width: 100%;
		font-size: 0.9em;
		box-sizing: border-box;
	}

	.table01 th,
	.table02 th,
	.table03 th,
	.table05 th {
		width: 80px;
		padding: 10px 5px;
	}

	.table01 td,
	.table02 td,
	.table03 td,
	.table05 td {
		padding: 10px;
	}

	.table04 th{
		width: 100px;
	}

	.table04 td{
		padding: 0.5em 1em;
	}

	.table01 ul,
	.table02 ul,
	.table03 ul,
	.table04 ul,
	.table05 ul{
		margin: 5px 0;
		padding: 0 0 0 15px
	}


}

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

	.table01,
	.table02,
	.table03,
	.table04,
	.table05{
		font-size: 0.8em;
	}

}

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

	.table05,
	.table05 tr,
	.table05 tbody{
		display: block;
		width: 100%;
		box-sizing: border-box;
	}


	.table05 th,
	.table05 td{
		display: block;
		width: 100%;
		box-sizing: border-box;
	}

}

.point{
	clear: both;
}

dl.point{
	margin-bottom: 3em;
}

.point .boldTitle03{
	font-size: 1.2em;
	padding-bottom: 0;
}

.point > p,
.point > div,
.point > ul{
	padding: 0.8em 1.5em;
	color: #253B52;
	background: #C8CFDE;
	-moz-border-radius: 4px;
	-webkit-border-radius: 4px;
	border-radius: 4px;
	-moz-box-shadow: 0 1px 0 #fff,
					0 1px 1px rgba(0,0,0,.4) inset;
	-webkit-box-shadow: 0 1px 0 #fff,
						0 1px 1px rgba(0,0,0,.4) inset;
	box-shadow: 0 1px 0 #fff,
				0 1px 1px rgba(0,0,0,.4) inset;
}

.ie7 .point > p,
.ie8 .point > p,
.ie7 .point > div,
.ie8 .point > div,
.ie7 .point > ul,
.ie8 .point > ul{
	border-bottom: solid 1px #fff;
}

.point > div > p{
	padding: 15px 0 0;
}

.point > div > p:first-child{
	padding: 0;
}

.point > ul > li{
	list-style-type: decimal;
	margin-left: 1.5em;
	padding-bottom: 0.5em;
}

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

	.point > ul > li{
		padding-bottom: 1em;
	}

	.point > ul > li:last-child{
		padding-bottom: 0;
	}

}

.point strong{
	background: #FDF48C;
}


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

コンテンツ部分　main+sidebarのコンテナ

***********************************************/
.contents{
	position: relative;
	width: 100%;
	margin: 30px auto 0;
	padding: 0;
	box-sizing: border-box;
}

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


}

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


}

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


}



.separate01{
	padding: 0 0 30px;
	margin: 0 auto 30px;
	border-bottom: solid 1px #999;
	box-shadow: 0 1px 0 rgba(255,255,255,.7)
}




/*Header ヘッダー
----------------------------------------------*/
.pageHeader{
	width: 100%;
	position: relative;
	background: #fff;
}

.innerHeader{
	width: 980px;
	margin: 0 auto;
	overflow: hidden;
	position: relative;
}

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

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

}

.headerInfo{
	width: 460px;
	float: right;
	text-align: right;
}

.headerInfo .tel{
	color: #e66e34;
}

/* スマホ用予約ボタン */
.reservationBtn {
	display: none;
	position: fixed;
	right: -1px;
	z-index: 1000;
	width: 12px;
	padding: 15px 12px;
	font-size: 12px;
	color: #fff !important;
	text-decoration: none !important;
	line-height: 1.2;
	border-radius: 5px 0 0 5px;
	-webkit-transition: .2s ease-in-out;
	-moz-transition: .2s ease-in-out;
	transition: .2s ease-in-out;
}

.reservationBtn:hover{
	filter: alpha(opacity=9);
	-moz-opacity:0.9;
	opacity:0.9;
}

.reservationBtn01{
	top: 90px;
	background: rgba(55, 133, 199, 0.9);
	border: solid 1px rgb(116, 173, 232);
}

.reservationBtn02{
	top: 200px;
	background: rgba(164, 199, 55, 0.9);
	border: solid 1px rgb(204, 232, 116);
}

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

	.headerInfo{
		display: none;
		width: 100%;
		padding: 0;
		box-sizing: border-box;
	}

	.reservationBtn {
		display: block;
	}


}

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


}

.headerLink{
	list-style: none;
	padding: 10px 0 20px;
	margin: 0 auto;
	overflow: hidden;
}

.headerLink li{
	float: right;
	padding: 0 0 0 15px;
}

.headerLink a{
	display: inline-block;
	padding: 3px 20px;
	background: #f19d09;
	color: #fff !important;
	border-radius: 4px;
	cursor: pointer;
	position: relative;
	box-shadow: 0 1px 1px rgba(0,0,0,.3) inset,
				0 1px 1px rgba(255,255,255,.3);
	behavior: url(/PIE.htc);
}

.headerLink a:link{text-decoration:none;}
.headerLink a:visited{text-decoration:none;}
.headerLink a:hover{text-decoration:none; zoom:1;}
.headerLink a:active{text-decoration:none;}

.headerLink a:hover{
	background: #e18d09;
}

.headerLink a:active{
	background: #e18d09;
	box-shadow: 0 1px 1px rgba(0,0,0,.3) inset;
}

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

	.footerLink{
		width: 100%;
		padding: 3px 10px;
		box-sizing: border-box;
	}

}

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

	.headerLink{
		display: none;
	}

	.footerLink{
		padding: 0;
	}
}

.headerLogo{
	width: 274px;
	margin: 20px 0;
	float: left;
}

.headerLogo img{
	width: 100%;
	height: auto;
}

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

	.headerLogo{
		width: 240px;
		margin: 20px auto;
		float: none;
	}

}


/*globalNavigation
----------------------------------------------*/
.luxbar-checkbox:checked ~ .luxbar-menu{
	overflow: hidden !important;
}

.luxbar-fixed{
	background: #fff;
}

.luxbar-menu-light,.luxbar-menu-light .dropdown ul{
	background-color:#fff;
	color:#606060
}

.luxbar-menu-light .active, .luxbar-menu-light .luxbar-item:hover{
	background: #bbe2f9;
}


.luxbar-menu a:link,
.luxbar-menu a:visited,
.luxbar-menu a:hover,
.luxbar-menu a:active{
	color: #606060;
	text-decoration: none;
}

.luxbar-brand{
	display: block;
	width: 200px;
	height: auto;
}

.luxbar-brand img{
	width: 100%;
	height: auto;
}

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

	.luxbar-brand{
		width: 180px;
	}

}

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

	.luxbar-brand{
		width: 160px;
	}

	/* スマホでのluxbar基本設定を上書き */
	.luxbar-menu {
		width: 100%;
		max-width: none;
		margin: 0;
	}

	.luxbar-brand {
		width: auto;
		max-width: 160px;
		padding: 15px 0;
	}

	.luxbar-brand img {
		width: auto;
		max-width: 160px;
		height: auto;
	}

}

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

	.luxbar-brand{
		width: 140px;
	}

	/* より小さいスマホでの設定 */
	.luxbar-brand {
		width: auto;
		max-width: 140px;
	}

	.luxbar-brand img {
		max-width: 140px;
	}

}

.luxbar-menu{
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
}

/* ドロップダウンの基本設定 */
.luxbar-item.dropdown {
    position: relative;
}

/* ドロップダウンメニューの基本スタイル */
.dropdown-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    background-color: #fff;
    min-width: 220px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    z-index: 1000;
    padding: 8px 0;
    margin: 0;
    list-style: none;
    border-radius: 4px;
}

/* ホバー時にドロップダウンメニューを表示 */
.luxbar-item.dropdown:hover .dropdown-menu {
    display: block;
}

/* ドロップダウンメニュー内の項目 */
.dropdown-menu li {
    padding: 0;
    margin: 0;
}

/* ドロップダウンメニュー内のリンク */
.dropdown-menu li a {
    color: #333;
    text-decoration: none;
    display: block;
    padding: 10px 20px;
    font-size: 14px;
    transition: all 0.3s ease;
}

/* ドロップダウンメニュー内のリンクホバー時 */
.dropdown-menu li a:hover {
    background-color: #f5f5f5;
    color: #000;
}

/* ドロップダウントグルの矢印表示（オプション） */
.dropdown-toggle::after {
    content: "▼";
    font-size: 10px;
    margin-left: 5px;
    vertical-align: middle;
}

/* モバイル対応（画面幅が768px以下の場合） */
@media screen and (max-width: 768px) {
    /* luxbar-menuの基本レイアウト修正 */
    .luxbar-menu {
        width: 100%;
        max-width: none;
        margin: 0;
    }

    /* スマホでのナビゲーション表示 */
    .luxbar-navigation {
        flex-direction: column;
        width: 100%;
    }

    /* スマホでのヘッダー部分 */
    .luxbar-header {
        width: 100%;
        justify-content: space-between;
        padding: 0 15px;
        height: auto;
        min-height: 58px;
        box-sizing: border-box;
    }

    /* スマホでのブランドロゴ */
    .luxbar-brand {
        padding: 15px 0;
        font-size: 1.4em;
        flex-shrink: 0;
    }

    .luxbar-brand img {
        width: auto;
        max-width: 200px;
        height: auto;
    }

    /* スマホでのハンバーガーメニュー */
    .luxbar-hamburger {
        padding: 15px 0;
        flex-shrink: 0;
        margin-left: auto;
    }

    /* スマホでのメニュー項目 */
    .luxbar-item {
        width: 100%;
        border-top: 1px solid #e0e0e0;
        height: auto;
        min-height: 50px;
    }

    .luxbar-item a {
        padding: 15px 20px;
        font-size: 16px;
        line-height: 1.4;
    }

    /* ドロップダウンメニューのスマホ対応 */
    .dropdown-menu {
        position: static !important;
        box-shadow: none !important;
        padding: 0 !important;
        margin: 0 !important;
        min-width: 100% !important;
        background-color: #f8f8f8 !important;
        border-radius: 0 !important;
        display: block !important; /* 常に表示 */
        overflow: visible !important;
    }

    .dropdown-menu li {
        border-top: 1px solid #e8e8e8;
        padding: 0;
        margin: 0;
    }

    .dropdown-menu li a {
        padding: 12px 20px 12px 40px !important; /* インデントを追加 */
        font-size: 14px !important;
        color: #666 !important;
        background-color: #f8f8f8 !important;
        min-height: auto !important;
        line-height: 1.4 !important;
    }

    .dropdown-menu li a:hover {
        background-color: #f0f0f0 !important;
        color: #333 !important;
    }

    /* ドロップダウントグルの矢印を非表示 */
    .dropdown-toggle::after {
        display: none !important;
    }

    /* ドロップダウンのホバー動作を無効化 */
    .luxbar-item.dropdown:hover .dropdown-menu {
        display: block !important;
    }

    /* 電話番号アイテムの特別処理 */
    .luxbar-item:last-child {
        border-bottom: 1px solid #e0e0e0;
    }

    .luxbar-item:last-child a {
        text-align: center;
        padding: 15px 20px;
    }

    .luxbar-item:last-child img {
        max-width: 180px;
        height: auto;
    }

    /* luxbarのチェックボックス動作を調整 */
    .luxbar-checkbox:checked ~ .luxbar-menu {
        height: auto !important;
        overflow: visible !important;
    }

    .luxbar-checkbox:not(:checked) ~ .luxbar-menu {
        overflow: hidden;
        height: 58px;
    }
}

@media screen and (max-width: 479px) {
    .luxbar-header {
        padding: 0 10px;
    }

    .luxbar-brand img {
        max-width: 160px;
    }

    .luxbar-item a {
        padding: 12px 15px;
        font-size: 15px;
    }

    .dropdown-menu li a {
        padding: 10px 15px 10px 30px !important;
        font-size: 13px !important;
    }

    .luxbar-item:last-child img {
        max-width: 150px;
    }

    /* より小さい画面でのメニュー項目の高さ調整 */
    .luxbar-item {
        min-height: 45px;
    }

    .luxbar-header {
        min-height: 50px;
    }
}

/* タブレット対応 */
@media screen and (min-width: 769px) and (max-width: 1024px) {
    .luxbar-menu {
        max-width: 100%;
    }

    .luxbar-brand img {
        max-width: 220px;
    }

    /* タブレットでのナビゲーション表示 */
    .luxbar-navigation {
        flex-direction: column;
        width: 100%;
    }

    /* タブレットでのヘッダー部分 */
    .luxbar-header {
        width: 100%;
        justify-content: space-between;
        padding: 0 20px;
        height: auto;
        min-height: 58px;
        box-sizing: border-box;
    }

    /* タブレットでのブランドロゴ */
    .luxbar-brand {
        padding: 15px 0;
        font-size: 1.5em;
        flex-shrink: 0;
    }

    .luxbar-brand img {
        width: auto;
        max-width: 220px;
        height: auto;
    }

    /* タブレットでのハンバーガーメニュー */
    .luxbar-hamburger {
        padding: 15px 0;
        flex-shrink: 0;
        margin-left: auto;
    }

    /* タブレットでのメニュー項目 */
    .luxbar-item {
        width: 100%;
        border-top: 1px solid #e0e0e0;
        height: auto;
        min-height: 50px;
    }

    .luxbar-item a {
        padding: 15px 20px;
        font-size: 16px;
        line-height: 1.4;
    }

    /* ドロップダウンメニューのタブレット対応 */
    .dropdown-menu {
        position: static !important;
        box-shadow: none !important;
        padding: 0 !important;
        margin: 0 !important;
        min-width: 100% !important;
        background-color: #f8f8f8 !important;
        border-radius: 0 !important;
        display: block !important; /* 常に表示 */
        overflow: visible !important;
    }

    .dropdown-menu li {
        border-top: 1px solid #e8e8e8;
        padding: 0;
        margin: 0;
    }

    .dropdown-menu li a {
        padding: 12px 20px 12px 40px !important; /* インデントを追加 */
        font-size: 14px !important;
        color: #666 !important;
        background-color: #f8f8f8 !important;
        min-height: auto !important;
        line-height: 1.4 !important;
    }

    .dropdown-menu li a:hover {
        background-color: #f0f0f0 !important;
        color: #333 !important;
    }

    /* ドロップダウントグルの矢印を非表示 */
    .dropdown-toggle::after {
        display: none !important;
    }

    /* ドロップダウンのホバー動作を無効化 */
    .luxbar-item.dropdown:hover .dropdown-menu {
        display: block !important;
    }

    /* 電話番号アイテムの特別処理 */
    .luxbar-item:last-child {
        border-bottom: 1px solid #e0e0e0;
    }

    .luxbar-item:last-child a {
        text-align: center;
        padding: 15px 20px;
    }

    .luxbar-item:last-child img {
        max-width: 200px;
        height: auto;
    }

    /* luxbarのチェックボックス動作を調整 */
    .luxbar-checkbox:checked ~ .luxbar-menu {
        height: auto !important;
        overflow: visible !important;
    }

    .luxbar-checkbox:not(:checked) ~ .luxbar-menu {
        overflow: hidden;
        height: 58px;
    }
}

.globalNavigation{
	width: 100%;
}

.globalNavigation ul{
	width: 981px;
	list-style: none;
	overflow: hidden;
	padding: 0;
	margin: 0 auto;
	border-left: 1px solid #ccc;
}

.globalNavigation li{
	float: left;
	border-right: 1px solid #ccc;
}

.globalNavigation li a{
	display: block;
	width: 175px;
	padding: 25px 10px;
	text-align: center;
	color: #333;
}

.globalNavigation a:visited{background: #fff; text-decoration: none;}
.globalNavigation a:link{background: #fff; text-decoration: none;}
.globalNavigation a:hover{background: #e9e6e4; text-decoration: none;}
.globalNavigation a:active{background: #e9e6e4; text-decoration: none;}

/*スマホ用ナビ*/
.accbox {
	display: none;
	margin: 0;
	padding: 0;
}

.accbox label {
	display: block;
	margin: 0 0 1px;
	padding : 11px 12px;
	color : #257eb9;
	font-weight: bold;
	text-align: center;
	background :#a4cbf3;
	cursor :pointer;
	transition: all 0.5s;
}

.accbox label:hover {
	background :#85baef;
}

.accbox input {
	display: none;
}

.accbox .accshow {
	height: 0;
	padding: 0;
	overflow: hidden;
	opacity: 0;
	transition: 0.8s;
}

.cssacc:checked + .accshow {
	height: auto;
	padding: 5px;
	background: #e9f4ff;
	opacity: 1;
}

.accbox ul{
	list-style: none;
	padding: 0;
	margin: 0;
}

.accbox li{
	font-size: 0.9rem;
	border-top: dotted 1px #ccc;
}

.accbox li:first-child{
	border-top: 0;
}

.accbox a{
	display: block;
	padding: 0.8em;
	color: #3c3c3c;
	text-decoration: none;
	text-align: center;
}

.accbox a:hover,
.accbox a:active{
	background: #fff;
}

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

	.globalNavigation ul{
		width: 100%;
		border: 0;
		box-sizing: border-box;
	}

	.globalNavigation li{
		width: 20%;
		border-right: 1px solid #fff;
		box-sizing: border-box;
	}

	.globalNavigation a{
		width: 100%;
		box-sizing: border-box;
	}

}

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

	.globalNavigation{
		display: none;
	}

	.accbox {
		display: block;
	}

}




/*localNavigation
----------------------------------------------*/
.localNaviTitle{
	font-weight: bold;
	padding: 0;
	font-size: 1.2em;
	border: solid #2F5C79;
	border-width: 0px 0 2px 0;
}

.localNaviTitle a{
	display: block;
	padding: 14px 0 14px 5px;
}

.localNaviTitle a:link,
.localNaviTitle a:visited{
	text-decoration: none;
	background: #fff;
}

.localNaviTitle a:hover,
.localNaviTitle a:active{
	text-decoration: underline;
	background: #fff;
}

.localNavigation{
	list-style: none;
	padding: 0;
}

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

	.localNavigation{
		display: none;
	}

}

.localNavigation li{
	border-bottom: solid 1px #b8b8b8;
}

.localNavigation li a{
	display: block;
	padding: 15px 20px 15px 30px;
	text-decoration: none;
	background: #fff url(/images/common/icon_arrow01.png) 5px center no-repeat;
	-webkit-transition: all 0.2s ease-out;
	-moz-transition: all 0.2s ease-out;
	-o-transition: all 0.2s ease-out;
	transition: all 0.2s ease-out;
}

.localNavigation a:link{
	color: #151515;
}

.localNavigation a:visited{
	color: #151515;
}

.localNavigation li a:hover,
.localNavigation li.current a{
	color: #151515;
	background: #fff url(/images/common/icon_arrow01.png) 10px center no-repeat;
	font-weight: bold;
}

@media only screen and (-webkit-min-device-pixel-ratio: 1.5),(min-resolution: 1.5dppx) {

	.localNavigation li a{
		background: url(/images/common/icon_arrow01@2x.png) 5px center no-repeat;
		background-size: 18px auto;
	}

	.localNavigation li a:hover,
	.localNavigation li.current a{
		background: #fff url(/images/common/icon_arrow01@2x.png) 10px center no-repeat;
		background-size: 18px auto;
	}

}




/*Footer
----------------------------------------------*/
.pageFooter01{
	width: 90%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 2em 0 0;
	box-sizing: border-box;
}

/* レスポンシブデザイン */
@media (max-width: 1024px) {
	.pageFooter01 {
		padding: 2em 30px;
	}
}

@media (max-width: 768px) {
	.pageFooter01 {
		padding: 2em 0;
	}
}


.pageFooter02{
	display: flex;
	width: 90%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0;
	box-sizing: border-box;
	gap: 100px;
}

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

	.pageFooter02{
		display: block;
	}

}

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

	/* .pageFooter{
		padding: 0;
	} */

}

.innerFooter01,
.innerFooter02{
	width: 50%;
	padding-bottom: 30px;
}


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

	.innerFooter01,
	.innerFooter02{
		width: 100%;
	}


}

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


}

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


}


.footerSitemap{
	display: flex;
	flex-wrap: wrap;
	gap: 1rem 2.5rem;
	list-style: none;
	width: 100%;
	padding: 0;
	margin: 0;
	box-sizing: border-box;
}

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

	.footerSitemap{
		display: none;
	}

}

.footerSitemap li{
	padding: 0;
	margin: 0;
}

.footerSitemap li::before{
	content: '▶';
	font-size: 0.5rem;
	padding: 0 3px;
	vertical-align: middle;
}

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

	.footerSitemap li::before {
		content: '';
		padding: 0;
	}

}

.footerSitemap li a:link,
.footerSitemap li a:visited{
	color: #333;
	text-decoration: none;
}

.footerSitemap li a:focus,
.footerSitemap li a:hover,
.footerSitemap li a:active{
	color: #333;
	text-decoration: underline;
}





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



}


.footerTitle01{
	font-size: 1rem;
	font-weight: bold;
	color: #0B6FAD;
}

.footerTel img{
	width: 75%;
	max-width: 495px;
	height: auto;
}

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

	.footerTel{
		text-align: center;
	}

}

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

	.footerTel img{
		width: 100%;
	}

}


.footerContent {
	display: grid;
	grid-template-columns: 1fr 2fr;
	gap: 4rem;
}

.footerLogo {
	font-size: 2.2rem;
	font-weight: bold;
	letter-spacing: 0.05em;
	color: #1976d2;
	margin-bottom: 20px;
}

.footerAddress{
	font-size: 1.1rem;
}

.footerPhone {
	color: #1976d2;
	font-size: 2.2rem;
	font-weight: bold;
	margin-bottom: 20px;
}

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

	.footerPhone {
		font-size: 1.6rem;
		padding-bottom: 0;
	}

}

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

	.footerPhone img {
		font-size: 1.4rem;
	}

}
.footerInfo {
	line-height: 1.8;
}

.footerContact h4 {
	font-size: 1.1rem;
	font-weight: 700;
	margin-bottom: 1rem;
}

.footerSitemapList {
	list-style: none;
	padding-left: 0;
	display: flex;
	gap: 5em;
	margin: 0;
}

.footerSitemapList li{
	list-style: none;
}

.footerSitemapList > li{
	font-weight: bold;
}

@media (max-width: 1300px) {
	.footerSitemapList {
		gap: 4em;
	}
}

@media (max-width: 1024px) {
	.footerSitemapList {
		width: 100%;
		text-align: left;
		justify-content: center;
		flex-wrap: wrap;
		box-sizing: border-box;
	}
}

@media (max-width: 840px) {
	.footerSitemapList {
		padding: 0;
		justify-content: space-between;
		gap: 2em;
	}
}

@media (max-width: 767px) {

	.footerSitemapList {
		gap: 1em;
	}

	.footerSitemapList > li {
		list-style: none;
		width: 44%;
		box-sizing: border-box;
		padding: 0.5em 0;
	}

	.footerSitemapList > li.footerSitemapHome{
		width: 100%;
	}

	.footerSitemapList ul li {
		list-style: none;
		width: 100%;
		box-sizing: border-box;
		padding: 0.5em 0;
	}

}

@media (max-width: 479px) {

	.footerSitemapList {
		justify-content: center;
		gap: 0;
	}

	.footerSitemapList li {
		list-style: none;
		width: 100%;
		text-align: center;
	}

}

.footerSitemapList>li {
	margin-bottom: 0.7em;
}

.footerSitemapList a {
	text-decoration: none;
	transition: color 0.2s;
}


.footerSitemapList ul {
	margin-top: 0.3em;
}

@media (max-width: 520px) {

	.footerSitemapList ul {
		margin-left: 0;
		margin-bottom: 0;
		padding: 0;
	}

}

@media (max-width: 1024px) {
	.footerContent {
		grid-template-columns: 1fr;
		text-align: center;
		gap: 0;
	}

	.footerSitemap {
		margin-top: 2rem;
	}
}

/* Footer */


.hoursTable {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 15px;
}

.hoursTable th,
.hoursTable td {
	border: 1px solid #ddd;
	padding: 8px;
	text-align: center;
	font-size: 0.85rem;
}

.hoursTable th {
	background-color: #1976d2;
	color: white;
}

.open {
	color: #1976d2;
}

.closed {
	color: #ccc;
}

.hoursNote {
	font-size: 0.75rem;
	color: #666;
}

.footerRight {
	width: 35%;
}

.calendarTitle {
	font-size: 0.9rem;
	margin-bottom: 10px;
	color: #333;
}

.calendarContainer {
	border: 1px solid #ddd;
	background-color: white;
}

.calendarHeader {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 8px;
	border-bottom: 1px solid #ddd;
	background-color: #f5f5f5;
}

.calendarMonth {
	font-size: 0.9rem;
}

.calendarControls {
	display: flex;
	gap: 10px;
}

.calendarTable {
	width: 100%;
	border-collapse: collapse;
}

.calendarTable th,
.calendarTable td {
	border: 1px solid #ddd;
	padding: 6px;
	text-align: center;
	font-size: 0.8rem;
}

.calendarTable th {
	background-color: #f5f5f5;
}

.calendarSunday {
	color: #e53935;
}

.calendarHoliday {
	background-color: #ffebee;
}

.calendarToday {
	background-color: #e3f2fd;
	font-weight: bold;
}

.calendarNote {
	font-size: 0.75rem;
	color: #666;
	margin-top: 10px;
}


/* Responsive adjustments */
@media (max-width: 768px) {

	.footerLeft,
	.footerRight {
		width: 100%;
	}

	.footerRight {
		margin-top: 30px;
	}
}


/*biz_calendarカスタマイズ
----------------------------------------------*/
#biz_calendar{
	max-width: 100% !important;
}

#biz_calendar p{
	padding-bottom: 0.5em;
	font-size: 1rem;
}

#biz_calendar table.bizcal{
	min-height: 300px;
}

/*Copyright
----------------------------------------------*/
.copyright{
	width: 100%;
	line-height: 1;
	margin: 0;
	padding:10px;
	font-size: 1em !important;
	text-align: center;
	color: #fff;
	background: #0B6FAD;
	box-sizing: border-box;
}

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


}

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

	.copyright{
		box-sizing: border-box;
		padding: 10px 5px;
	}

}


/*ページ遷移ボタン
----------------------------------------------*/
.pageLink01{
	display: inline-block;
	padding: 3px 20px;
	background: #85B7D6;
	color: #fff !important;
	border-radius: 50px;
	cursor: pointer;
	position: relative;
}

.pageLink01:link{text-decoration:none;}
.pageLink01:visited{text-decoration:none;}
.pageLink01:hover{text-decoration:none;}
.pageLink01:active{text-decoration:none;}

.pageLink01:hover{
	background: #6597B6;
}

.pageLink01:active{
	background: #6597B6;
	box-shadow: 0 1px 3px rgba(0,0,0,.3) inset;
}


.pageLink02{
	display: inline-block;
	padding: 5px 15px;
	line-height: 1;
	background: #3c2820;
	background: -webkit-gradient(linear, left top, left bottom, color-stop(0.05, #5c4840), color-stop(0.49, #3c2820));
	background: -webkit-linear-gradient(top, #5c4840 5%, #3c2820 49%);
	background: -moz-linear-gradient(top, #5c4840 5%, #3c2820 49%);
	background: -o-linear-gradient(top, #5c4840 5%, #3c2820 49%);
	background: -ms-linear-gradient(top, #5c4840 5%, #3c2820 49%);
	background: linear-gradient(top, #5c4840 5%, #3c2820 49%);
	color: #fff !important;
	border-radius: 20px;
	cursor: pointer;
	position: relative;
	box-shadow: 0 1px 1px rgba(0,0,0,.3) inset,
				0 1px 1px rgba(255,255,255,.3);
	behavior: url(/PIE.htc);
}

.pageLink02:link{text-decoration:none;}
.pageLink02:visited{text-decoration:none;}
.pageLink02:hover{text-decoration:none; zoom:1;}
.pageLink02:active{text-decoration:none;}

.pageLink02:hover{
	background: #037d9e;
	background: -webkit-gradient(linear, left top, left bottom, color-stop(0.05, #5c4840), color-stop(0.49, #037d9e));
	background: -webkit-linear-gradient(top, #5c4840 5%, #037d9e 49%);
	background: -moz-linear-gradient(top, #5c4840 5%, #037d9e 49%);
	background: -o-linear-gradient(top, #5c4840 5%, #037d9e 49%);
	background: -ms-linear-gradient(top, #5c4840 5%, #037d9e 49%);
	background: linear-gradient(top, #5c4840 5%, #037d9e 49%);
}

.pageLink02:active{
	background: #037d9e;
	box-shadow: 0 1px 1px rgba(0,0,0,.3) inset;
}

#modal .pageLink02{
	margin: 15px 0 0 10px;
	font-size: 0.9em;
}



/*アイコン無しのセンター寄せリンク*/
.linkLarge{
	margin: 25px auto;
	text-align: center;
}

.pageFooter .linkLarge{
	display: none;
}

.linkLarge a{
	min-width: 240px;
	padding: 0.4em 2em;
	font-size: 1.2em;
}

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

	.linkLarge a{
		margin: 0.5em auto;
		padding: 0.2em 1.4em;
		font-size: 1.1em;
	}

}

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

	.linkLarge a{
		padding: 0.2em 1em;
	}

}

/*
アイコン付きリンク
----------------------------------------*/
/*共通*/
.iconLink{
	text-align: center;
}


.sideSection .iconLink a{
	display: block;
	width: 100%;
	background: #f4f4f0;
	margin: 1em auto 0;
	border-radius: 4px;
}

.iconLink span{
	display: inline-block;
	padding: 0.2em 50px 0.2em 70px;
	font-size: 1.4em;
	color: #2b0a07;
	background: url(/images/common/icon_map01.png) 30px center no-repeat;
}

/*交通案内へのリンク*/
.linkAccess a:link,
.linkAccess a:visited{
	background: #f4f4f0;
}

.linkAccess a:hover{
	background: #e4e4e0;
}

.linkAccess a:active{
	background: #e4e4e0;
	box-shadow: 0 1px 1px rgba(0,0,0,.3) inset;
}

@media only screen and (-webkit-min-device-pixel-ratio: 1.5),(min-resolution: 1.5dppx) {

	.linkAccess span{
		background: url(/images/common/icon_map01@2x.png) 30px center no-repeat;
		background-size: 18px auto;
	}

}

/*汎用アイコンリンク*/
.linkOther span{
	background: url(/images/common/icon_arrow01.png) 30px center no-repeat;
}

@media only screen and (-webkit-min-device-pixel-ratio: 1.5),(min-resolution: 1.5dppx) {

	.linkOther span{
		background: url(/images/common/icon_arrow01@2x.png) 30px center no-repeat;
		background-size: 18px auto;
	}

}

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

	.iconLink span{
		margin: 0.5em auto;
		padding: 0.2em 50px 0.2em 70px;
		font-size: 1.2em;
	}

}

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

	.iconLink span{
		padding: 0.3em 20px 0.3em 40px;
	}

	.linkAccess a span,
	.linkDownload a span,
	.linkOther a span{
		background-position: 10px center !important;
	}

}




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

トップへ戻るボタン backTop

****************************************************************/
#backTop{
	display: block;
	width: 100px;
	height: 0;
	padding-top: 100px;
	overflow: hidden;
	position: fixed;
	right: 20px;
	bottom: -120px;
	z-index: 10000;
	background: url(/images/common/btn_backtop.png) no-repeat;
	filter:alpha(opacity=70);
	-moz-opacity: 0.7;
	opacity: 0.7;
}

@media only screen and (-webkit-min-device-pixel-ratio: 1.5),(min-resolution: 1.5dppx) {

	#backTop{
		background: url(/images/common/btn_backtop@2x.png) no-repeat;
		background-size: 100px auto;
	}

}

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

	#backTop{
		width: 50px;
		padding-top: 50px;
		right: 10px;
		bottom: -60px;
		background-size: 50px auto;
	}

}


/*ユーザーアクション
----------------------------------------------*/


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

	リスト list

*****************************************/
ul ul,
ul ol,
ol ol,
ol ul{
	padding: 0 0 0 10px;
}

/*リストスタイルタイプ*/
.decimal,
.decimal02{
	list-style-type: decimal;
}

.decimal02 > li{
	font-size: 1.1em;
	font-weight: bold;
	margin: 0.5em 0;
}


.disc{
	list-style-type: disc !important;
}

.decimal dd,
.decimal li,
.decimal02 dd,
.decimal02 li,
.disc dd,
.disc li{
	margin-left: 1.5em;
	padding: 0;
	display: list-item;
}

/*汎用リスト*/

/*アイコンリスト*/
.iconList01{
	padding: 0;
}


.iconList01 > li{
	font-size: 1.1em;
	font-weight: bold;
	list-style: none;
	margin: 0.5em 0;
	padding-left: 20px;
	background: url(/images/common/icon_arrow01.png) left 0.3em no-repeat;
}

@media only screen and (-webkit-min-device-pixel-ratio: 1.5),(min-resolution: 1.5dppx) {

	.iconList01 > li{
		background: url(/images/common/icon_arrow01@2x.png) left 0.3em no-repeat;
		background-size: 12px auto;
	}

}

.alternatelyList{
	list-style: none;
	padding: 0;
}

.alternatelyList li{
	padding: 0.5em 1em;
}

.alternatelyList .odd{
	background: #dae6ff;
}

.inlineList{
	list-style: none;
	padding: 0;
}

.inlineList li{
	display: inline-block;
	margin: 0 1.5em 0.8em 0;
	padding: 5px 0 3px;
}

.list01{
	list-style: none;
	padding: 0 0 0 10px;
	margin: 0;
	overflow: hidden;
}

.list01 li{
	width: 200px;
	padding: 0 10px 8px;
	float: left;
}

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

	.list01{
		padding: 0;
	}

	.list01 li{
		padding: 0 7px 5px;
	}

}

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

	.list01 li{
		padding: 0 10px 8px;
	}

}

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

	.list01 li{
		width: 46%;
		padding: 0 2% 5px;
	}
	.list01 li img{
		width: 100%;
		height: auto;
	}

}

dd + dt{
	margin-top: 15px;
}

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

	パンくずリスト

*****************************************/
/*パンくずリスト
----------------------------------------------*/
.pankuzuList{
	margin-left:-37px;
}

.pankuzuList li{
	display:inline;
	background:url(/images/common/arrow.png) no-repeat left;
	padding-left:22px;
	margin-left:15px;
}

.pankuzuList li:first-child{
	background:none;
}

.now{
	border-right:0px solid #fff!important;
	font-weight:bold!important;
	background:none!important;
}

.no-border{
	border-right:0px solid #fff!important;
}


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

wordpressのページネーション

****************************************************************/
.pagination {
	width:100%;
	clear: both;
	padding: 20px 0;
	position: relative;
	font-size: 14px;
	line-height: 14px;
	overflow:hidden;
}
.pagination span,
.pagination a {
	display: block;
	float: left;
	width: auto;
	margin: 2px 5px 2px 0;
	padding: 5px 10px 6px 10px;
	border: 1px solid #bbb;
	background-color: #eee;
	border-radius: 18px;
	-webkit-border-radius: 18px;
	-moz-border-radius: 18px;
	border-radius: 18px;
	color: #333;
	text-decoration: none;
	behavior: url(/PIE.htc);
}

.ie6 .pagination span,
.ie6 .pagination a,
.ie7 .pagination span,
.ie7 .pagination a,
.ie8 .pagination span,
.ie8 .pagination a{
	position:relative;/*PIE.htcを有効にするため*/
}

.ie7 .pagination span,
.ie7 .pagination a,
.ie8 .pagination span,
.ie8 .pagination a{
	padding: 7px 10px 5px 10px;
}


.pagination a:hover{
	background-color: #fff;
}
.pagination .current{
	background-color: #fff;
	font-weight: bold;
}


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

ホーム home

****************************************************************/
/*メインビジュアルデザイン01*/
.mainVisualWrapper{
	display: flex;
	width: 100%;
	position: relative;
	background: #c2dae9;
}


.subPageTitleWrapper{
	display: flex;
	justify-content: center;
	align-items: center;
	text-align: center;
	width: 100%;
	background: url(/images/common/bg_subpage_header01.jpg) left center no-repeat;
	background-size: cover;
	padding-top: 80px;
	height: 400px;
	box-sizing: border-box;
}

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

	.subPageTitleWrapper {
		height: 300px;
		padding-top: 60px;
	}

}

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

	.subPageTitleWrapper {
		height: 240px;
	}

}

@media only screen and (-webkit-min-device-pixel-ratio: 1.5),(min-resolution: 1.5dppx) {


}

.mainVisualCopy{
	width: 60%;
	max-width: 400px;
	margin: 10% auto 0;
	justify-content: center;
	align-items: center;
}

.mainVisualCopy img{
	width: 100%;
	height: auto;
}

.homeNewsSection{
	margin: 60px auto 3em;
	padding: 40px;
	width: 92%;
	max-width: 800px;
	background: #fff;
	box-sizing: border-box;
	box-shadow: 0 3px 8px rgba(0,0,0,.4);
}


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


	.mainVisualCopy{
		max-width: 320px;
		margin: 115px auto 0;
	}

}


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

	.homeNewsSection {
		margin: 30px auto 3em;
	}
}

.newsTitle01{
	width: 100%;
	max-width: 300px;
	font-size: 2.2rem;
	font-weight: bold;
	text-align: center;
	padding: 0;
	margin: 0 auto 1em;
	padding-bottom: .5rem;
	border-bottom: solid 1px #4D4D4D;
}

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

	.newsTitle01{
		font-size: 1.9rem;
	}

}

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

	.newsTitle01{
		font-size: 1.6rem;
	}

}

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

	.newsTitle01{
		font-size: 1.4rem;
	}

}

.newsSection article{
	display: flex;
	align-items: center;
	border-bottom: dotted 1px #6c7165;
	padding: 1em 0;
}

.newsSection > article:first-child{
	padding-top: 0;
}

.newsSection article a {
	text-decoration: none;
	color: var(--text-color);
}

.newsSection article p{
	padding: 0;
}

.newsTime{
	display: inline-block;
	font-size: 1em;
	padding-right: 1em;
}

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

	.newsSection article{
		display: block;
		border-bottom: dotted 1px #6c7165;
		padding: 1em 0;
	}

	.newsTime{
		display: block;
		font-size: 1em;
		padding-right: 0;
	}

}

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

	.newsTime{
		font-size: 0.9em;
	}

}


.btnReadMore01{
	display: inline-block;
	padding: 0.2em 3em;
	background: #fff;
	color: #0B6FAD !important;
	border: solid 1px #0B6FAD;
	cursor: pointer;
	position: relative;
}

.btnReadMore01:link{text-decoration:none;}
.btnReadMore01:visited{text-decoration:none;}
.btnReadMore01:hover{text-decoration:none;}
.btnReadMore01:active{text-decoration:none;}

.btnReadMore01:hover,
.btnReadMore01:active{
	background: #e5f3ff;
}



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


}


.homeAbout{
	text-align: center;
}

.largeCopy01{
	font-size: 2.5rem;
	margin-top: 50px;
}

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

	.largeCopy01{
		font-size: 1.8rem;
	}

}

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

	.largeCopy01{
		font-size: 1.4rem;
	}

}


.inlineToBlock01{
	display: inline;
}


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

	.inlineToBlock01{
		display: block;
	}

}


.service-grid {
  display: grid;
  gap: 20px;
  width: 100%;
  margin: 0 auto;
  padding: 20px;
  box-sizing: border-box;
}

/* PC表示（1025px以上）: 9列グリッド */
@media screen and (min-width: 1025px) {
  .service-grid {
    grid-template-columns: repeat(9, 1fr);
    max-width: 1800px;
  }
}

/* タブレット表示（768px～1024px）: 3列グリッド */
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .service-grid {
    grid-template-columns: repeat(3, 1fr);
    max-width: 900px;
  }
}

/* スマートフォン表示（767px以下）: 3列グリッド */
@media screen and (max-width: 767px) {
  .service-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    padding: 10px;
  }
}

.service-item {
  text-decoration: none;
  color: #fff;
  text-align: center;
  transition: transform 0.3s ease;
  padding: 1rem;
  border-radius: 10px;
  box-shadow: 0 2px 5px rgba(0,0,0,0.1);
  font-weight: bold;
}

.service-item:link,
.service-item:visited {
  color: #fff;
  text-decoration: none;
}

.service-item:nth-child(5n+1) { background: #549ac6; }
.service-item:nth-child(5n+2) { background: #4fc1b7; }
.service-item:nth-child(5n+3) { background: #f7b500; color: #4d4d4d; }
.service-item:nth-child(5n+4) { background: #f7953b; color: #4d4d4d; }
.service-item:nth-child(5n+5) { background: #7bb662; color: #4d4d4d; }

.service-item:hover {
  transform: translateY(-5px);
}

.service-icon {
  margin: 0 auto 10px;
  height: 100px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px 0;
}

.service-icon img {
  max-width: 100%;
  height: auto;
  max-height: 80px;
  width: auto;
}

.service-item p {
  margin: 0;
  padding: 1em 0 0;
  font-size: 16px;
  line-height: 1.4;
  border-top: 2px solid #fff;
  color: #fff;
}

@media screen and (max-width: 767px) {
  .service-item {
    padding: 1.5rem;
  }

  .service-icon {
    height: 80px;
    padding: 5px 0;
  }

  .service-icon img {
    max-height: 60px;
  }

  .service-item p {
    font-size: 14px;
    padding: 0.8em 0 0;
  }
}


/*.service-item p::before{
	content: '＞';
	padding: 0 5px 0 0;
	vertical-align: middle;
}*/


/*
Access
--------------------------------*/
.homeAccess{
	background: #fff;
	padding-top: 50px;
}

.accessRouteWrapper01{
	display: flex;
	justify-content: space-between;
	gap: 100px;
	margin: 50px 0;
}

@media (max-width: 1019px) {

	.accessRouteWrapper01{
		display: flex;
		justify-content: unset;
		flex-flow: column;
		gap: 20px;
	}

}

.accessRouteImage01{
	display: flex;
	align-items: center;
	width: 100%;
	max-width: 500px;
	height: 380px;
	overflow: hidden;
}

/*@media screen and (-webkit-min-device-pixel-ratio: 1.5),(min-resolution: 1.5dppx) {

	.accessRouteImage01{
		background: url(/images/common/pic_feature01@2x.jpg) center center no-repeat;
		background-size: cover;
	}

}*/

.address01{
	font-size: 1.1rem;
	font-weight: bold;
	padding: 0 0 1em 50px;
	background: url(/images/common/icon_pin01.png) left top no-repeat;
}

@media screen and (-webkit-min-device-pixel-ratio: 1.5),(min-resolution: 1.5dppx) {

	.address01{
		background: url(/images/common/icon_pin01@2x.png) left top no-repeat;
		background-size: 34px auto;
	}

}

@media (max-width: 1019px) {

	.accessRouteImage01{
		width: 100%;
		max-width: 680px;
		height: auto;
		margin: 0 auto;
	}

}


.accessRouteList01 dt{
	font-weight: bold;
	padding: 0.5em 0 0;
}

.accessRouteList01 dd{
	padding: 0 0 0.5em;
	border-bottom: dotted 2px #E6E6E6;
}

.googleMap01{
	width: 100%;
	height: 400px;
	margin: 0 auto 10px;
}

.googleMap01 iframe{
	width: 100%;
	height: 100%;
}

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

	.googleMap01{
		height: 300px;
	}

}

.homeBtnAccess i{
	vertical-align: bottom;
	padding-right: 10px;
}
.homeBtnAccess span{
	display: inline-block;
	padding: 3px 0;
}

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

	医院紹介 clinic

*****************************************/
.greetContainer {
    display: flex;
    justify-content: space-between;
    max-width: 1100px;
    margin: 0 auto;
	gap: 50px;
}

.greetImage {
    width: 500px;
}

.greetImage img {
    width: 100%;
    height: auto;
    object-fit: cover;
}

.greetContent {
    width: 500px;
}

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

	.greetContainer {
		gap: 50px;
	}

	.greetImage {
		flex: 0 0 350px;
	}

	.greetContent {
		width: auto;
	}

}

@media screen and (max-width: 879px) {
    .greetContainer {
        flex-direction: column;
        gap: 30px;
    }

    .greetImage {
        flex: none;
        width: 100%;
		max-width: 680px;
		margin: 0 auto;
    }
}

.signature{
	text-align: right;
}

.signatureName01,
.signatureName02 {
	display: inline-block;
}

.signatureName02 {
	padding-left: 1rem;
}

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

	.signatureName01,
	.signatureName02 {
		display: block;
	}

}

/*
医師紹介
--------------------------------*/
.doctorContainer{
	display: flex;
	justify-content: space-between;
	gap: 50px;
}

.doctorTitle span{
	display: block;
}

.doctorPosition{
	font-size: 1rem;
}

.doctorName01{
	font-size: 2.2rem;
}

.doctorName02{
	font-size: 1rem;
	padding-bottom: 2em;
}

.doctorImage {
    width: 300px;
}

.doctorImage img {
    width: 100%;
    height: auto;
    object-fit: cover;
}

.doctorContent {
    width: 700px;
}

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

	.doctorContainer {
		gap: 50px;
	}

	.doctorContent {
		width: auto;
	}

}

@media screen and (max-width: 879px) {
    .doctorContainer {
        flex-direction: column-reverse;
        gap: 30px;
    }

    .doctorImage {
        flex: none;
        width: 100%;
		max-width: 300px;
		margin: 0 auto;
    }
}

.clinicAbout{
	padding-bottom: 5em;
}

.licenseTitle01{
	color: #0B6FAD;
	font-weight: bold;
	font-size: 1rem;
	padding: 0.2em 0.5em;
	border-bottom: solid 1px #0B6FAD;
}

.licenseList01{
	list-style: none;
}

.licenseList01 li{
	padding: 0.2em 0.5em;
	border-bottom: solid 1px #E6E6E6;
}

/* コンテナ */
.facilityContainer {
  width: 90%;
  max-width: 1200px;
  background: #fff;
  margin: 0 auto;
  padding: 20px;
  line-height: 1.5;
  box-shadow: 0 0 10px rgba(0,0,0,.4);
}

/* テーブル */
.facilityTable {
  width: 100%;
  margin-bottom: 2rem;
  border-collapse: separate;
  border-spacing: 20px 0;
  box-sizing: border-box;
}

.facilityTableHeader {
  text-align: left;
  width: 180px; /* 見出し部分の固定幅 */
  vertical-align: top;
  padding: 0.5rem;
  font-weight: bold;
  color: #0B6FAD;
  border-bottom: 1px solid #0B6FAD;
  padding: 10px;
  box-sizing: border-box;
}

.facilityTableData {
  padding: 0.5rem;
  border-bottom: 1px solid #CCCCCC;
  box-sizing: border-box;
}

/* リンクボタン */
.facilityLinkWrapper {
  margin-top: 2rem;
}

.facilityLink {
  display: inline-block;
  padding: 0.5rem 1rem;
  background-color: #0B6FAD;
  color: #fff !important;
  text-decoration: none!important;
  border-radius: 4px;
}

.facilityLink:hover {
  opacity: 0.8;
}

/* レスポンシブ対応 */
@media screen and (max-width: 600px) {
  /* テーブルを縦並びにする例 */
  .facilityTable,
  .facilityTable thead,
  .facilityTable tbody,
  .facilityTable th,
  .facilityTable td,
  .facilityTable tr {
    display: block;
    width: 100%;
  }

  .facilityTableHeader {
    width: auto;
    margin-bottom: 0.3rem;
  }

  .facilityTableData {
    margin-bottom: 1rem;
  }
}


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

	お問い合わせ contact

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

/*****************************************
	ニュース news
	modified in 03/2025 by worldest
*****************************************/

.newsList {
	margin-bottom: 100px;
}

.newsList > article {
	border-bottom: 1px solid #E6E6E6;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 50px;
}

.newsList > article > header {
	align-items: center;
	gap: 0 30px;
	font-size: calc(22/16 * 1rem);
	flex: 1;
	padding-right: 30px;
}

.newsList > article a {
	text-decoration: none;
	color: var(--text-color);
	font-weight: normal;
}

.newsList > article > a > span {
	font-size: 1rem;
}

/*single page*/
.singlePostSection .headerDesignBottomBorder {
	font-size: calc(30/16 * 1rem);
}

.singlePostSection .singlePostContent {
	margin: 50px 0;
	margin-bottom: 100px;
}

.singlePostNav {
	display: flex;
	justify-content: center;
	align-items: center;
}

.singlePostNav a {
	text-decoration: none;
	color: var(--text-color);
	font-size: 1rem;
}

.pagenaviBox{
	padding: 30px 0;
}

.wp-pagenavi {
	text-align:center;
}

.singlePostNav a,
.wp-pagenavi a, .wp-pagenavi span {
	color: var(--text-color);
	background-color: #FFFFFF;
	padding: 8px 15px !important;
	margin: 0 2px;
	white-space: nowrap;
	-webkit-transition: 0.2s ease-in-out;
	-moz-transition: 0.2s ease-in-out;
	-o-transition: 0.2s ease-in-out;
	transition: 0.2s ease-in-out;
	text-align: center;
	text-decoration: none;
}

.singlePostNav a:hover,
.wp-pagenavi a:hover{
	color: #fff;
	background-color: var(--main-color2);
}

.wp-pagenavi span.current{
	color: #fff;
	background-color: var(--main-color);
}

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

	.wp-pagenavi a,
	.wp-pagenavi span{
		display: inline-block;
		margin: 0 3px 5px 0;
	}
}

/*****************************************
	設備紹介 facility
	modified in 03/2025 by worldest
*****************************************/

.facilitiesGrid {
	flex-wrap: wrap;
	gap: 30px;
	padding-top: 30px;

}

.facilitiesGrid > div,
.facilitiesItem {
	width: calc(33.3% - 20px);
}

.facilitiesGrid > div img,
.facilitiesItem img {
	margin-bottom: .5rem;
}

.facilitiesGrid > div p,
.facilitiesItem p {
	font-size: 1rem;
}

/*****************************************
	当院の特徴 feature
	modified in 03/2025 by worldest
*****************************************/

.policySection ul {
	display: flex;
	flex-direction: column;
	gap: 30px;
	max-width: 900px;
	margin: 0 auto;
	padding-top: 30px;
}

.policySection ul > li {
	background-color: var(--main-color4);
	color: white;
	padding: 15px 20px;
	display: flex;
	align-items: center;
}

.policySection ul > li > div:first-child {
	padding-right: 30px;
}

.policySection ul > li > div:first-child > img {
	width: auto;
	height: 43px;
}

.policySection ul > li > div:last-child {
	text-align: left;
	padding-left: 30px;
	font-size: calc(20/16 * 1rem);
	letter-spacing: 0.05em;
	color: #FFFFFF;
	border-left: 1px solid #FFFFFF;
}

.featuresSection .sectionInner {
	max-width: initial;
	width: 100%;
}

.featureContainer {
	margin: 40px auto 0;
}

.featureContainer > div {
	display: flex;
	justify-content: center;
	align-items: center;
	margin-bottom: calc(100/16 * 1rem);
}

.featureContainer > div > div:first-child {
	width: 60%;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: row-reverse;
	transform-origin: left center;
}

.featureContainer > div:nth-child(even) {
	flex-direction: row-reverse;
}

.featureContainer > div > div:first-child > figure {
	width: 50%;
}

.featureContainer > div > div:last-child {
	width: 40%;
	text-align: left;
	display: flex;
	justify-content: flex-start;
}

.featureContainer > div > div:last-child > div {
	position: relative;
	left: -15%;
	max-width: 510px;
	width: 100%;
}

.featureContainer > div:nth-child(even) > div:first-child {
	transform-origin: right center;
}

.featureContainer > div:nth-child(even)  > div:last-child {
	justify-content: flex-end;
}

.featureContainer > div:nth-child(even) > div:last-child > div {
	left: initial;
	right: -15%;
}

.featureContainer > div > div:last-child > div > p {
	font-size: 1rem;
	padding: 0;
}

.specialtiesSection {
	padding-bottom: 100px;
}

.specialtiesGrid {
	display: flex;
	justify-content: center;
	gap: 30px;
	flex-wrap: wrap;
	max-width: 1100px;
	margin: 0 auto;
	margin-top: 30px;
}

.specialtiesGrid > div {
	width: calc(33.3% - 20px);
	background-color: var(--main-color3);
	/* box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); */
	padding-bottom: 2rem;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.specialtyImageWrapper {
	position: relative;
}

.specialtyTitle {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: calc(100% - 2rem);
	text-align: center;
	background-color: rgba(0, 0, 0, 0.6);
	color: #FFFFFF;
	padding: 10px;
	font-size: calc(24/16 * 1rem);
	font-weight: normal;
	box-sizing: border-box;
}

.sectionCommon .specialtyDesc {
	padding: 20px;
	padding-bottom: 30px;
	font-size: 1rem;
	text-align: left;
}

/*****************************************
	交通案内 access
	modified in 03/2025 by worldest
*****************************************/

.accessRouteSection .headerDesignBottomBorder {
	width: 100%;
	max-width: 500px;
	margin-left: auto;
	margin-right: auto;
	border-bottom-width: 2px;
}

.mapContainer {
	width: 100%;
	max-width: 1100px;
	margin: 0 auto;
}

.mapContainer iframe {
	width: 100%;
}

.detailedMapContainer {
	width: 100%;
	max-width: 800px;
	margin: 0 auto;
}

.accessRouteSection .shadowBox + .shadowBox {
	margin-top: 50px;
}

.routeList > li {
	position: relative;
	padding-left: 2rem;
	padding-bottom: .5rem;
}

.routeList > li:before {
	content: '●';
	position: absolute;
	font-size: 2em;
	line-height: .7;
	top: 0;
	left: 0;
}

.sectionCommon .routeInstruction {
	display: flex;
	flex-wrap: wrap;
	gap: 0 100px;
	border-top: 1px solid #E6E6E6;
	margin-top: 1rem;
	padding-top: 1rem;
}


.routeInstruction > li {
	width: calc(33.3% - 66.6px);
}

/* .parkingContainer .routeInstruction>li {
	width: calc(50% - 50px);
} */

.routeInstruction > li > figure {
	position: relative;
}

.routeInstruction > li > figure:after {
	content: '';
	position: absolute;
	top: 50%;
	right: -75px;
	transform: translateY(-50%);
	width: 0;
	height: 0;
	border-top: 50px solid transparent;
	border-bottom: 50px solid transparent;
	border-left: 50px solid var(--main-color3);
}

.routeInstruction > li:nth-child(3n) > figure:after {
	display: none;
}

.routeInstruction > li > div:first-child {
	font-weight: bold;
	padding-bottom: .5rem;
}

.routeInstruction > li p {
	padding-top: .5rem;
	font-size: 1rem;
}

.parkingContainer .routeInstruction {
	border-top: none;
}

.parkingContainer .routeInstruction > li .pageLinkBtn {
	margin: 0 auto;
	display: table;
}

.parkingContainer .routeInstruction > li > figure:after {
	display: none!important;
}

/*****************************************
	関節リウマチ, 骨粗しょう症, スポーツ障害
	ra, osteoporosis, sports-injuries
	modified in 03/2025 by worldest
*****************************************/

.numberingList {
	margin-top: calc(50/16 * 1rem)!important;
	list-style: none;
}

.numberingList > li {
	padding: 10px 0;
	margin-bottom: 1rem;
}

.numberingList > li > div:first-child {
	width: 150px;
}

.numberingList > li > div:first-child figure {
	text-align: center;
}

.numberingList > li > div:first-child img {
	width: auto;
	height: 85px;
}

.numberingList > li > div:nth-child(2) {
	flex: 1;
}

.numberingList > li h4 {
	line-height: 1;
	font-weight: bold;
	color: var(--main-color);
	font-size: calc(23/16 * 1rem);
	padding-bottom: .8rem;
	margin-bottom: .5rem;
	border-bottom: 1px solid var(--main-color);
}

.pointBox {
	position: relative;
	background-color: var(--main-color3);
	padding: 0 50px;
	margin-top: 2rem;
	padding-top: .5rem;
	padding-bottom: 1rem;
}

.pointBox p {
	padding: 0;
}

.pointBox:before,
.osteoporosisSection07 .sectionInner:before {
	content: '';
	position: absolute;
	bottom: -10px;
	left: 10px;
	width: calc(100% - 20px);
	height: 100%;
	background-color: var(--main-color);
	opacity: 0.2;
	z-index: 0;
}

.osteoporosisSection07 .sectionInner:before {
	z-index: -1;
	background-color: var(--accent-color);
}
.osteoporosisSection07 ul {
	padding: 0 calc(80/16 * 1rem);
}

.osteoporosisSection07 ul li {
	padding-left: 2.5rem;
	background: url(/images/common/icon_checkbox01.png) left 0px top 3px no-repeat;
	background-size: 30px auto;
	font-weight: bold;
	margin-bottom: 1rem;
	font-size: calc(23/16 * 1rem);
}

.pointBox:after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: var(--main-color3);
	z-index: 1;
}

.pointBox > div:first-child {
	display: flex;
	align-items: center;
	justify-content: space-between;
	color: var(--main-color);
	gap: .5rem;
	margin-bottom: .5rem;
}

.pointBox > div:first-child > span {
	color: inherit;
	font-weight: bold;
	font-size: calc(20/16 * 1rem);
}

@media screen and (max-width: 767px) {
	#consultation .pointBox > div:first-child > span {
		font-size: calc(15/16 * 1rem);
	}
}

.pointBox > div:first-child:before,
.pointBox > div:first-child:after {
	content: '';
	top: 0;
	left: 0;
	width: calc(50% - 50px);
	height: 1px;
	background-color: var(--main-color);
}

#consultation .pointBox>div:first-child:before,
#consultation .pointBox>div:first-child:after {
	width: calc(40% - 50px);
}

.pointBox * {
	text-align: center;
	position: relative;
	z-index: 2;
}

#consultation .pointBox * {
	text-align: left;
}

.flexListItemWrapper {
	flex-wrap: wrap;
	justify-content: center;
}

.flexListItemWrapper.marginLarge {
	margin-bottom: 2rem;
}

.listItemDesign {
	height: 80px;
	border-radius: 40px;
	box-sizing: border-box;
	padding: 1.2rem;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	margin: 0.5rem;
}

.listItemDesign * {
	color: #FFFFFF;
}

.listItemDesign p {
	padding-bottom: 0;
	text-align: center;
	font-weight: bold;
}
.listItemDesign p.al {
	text-align: left;
}

.listItemDesign span {
	font-size: .8rem;
}

.raSection03 h4 {
	background-color: var(--main-color);
	color: #FFFFFF;
	font-size: calc(23/16 * 1rem);
	height: 50px;
	line-height: 50px;
	padding-left: 1rem;
	margin-bottom: 1rem;
	font-weight: bold;
	letter-spacing: 0.1em;
}

.raSection03 h4 + p {
	font-size: calc(20/16 * 1rem);
	font-weight: bold;
	letter-spacing: 0.1em;
}

.raSection06 ul > li {
	padding-bottom: .3rem;
	font-weight: bold;
	color: var(--main-color);
}

.osteoporosisSection01 .pointBox .displayFlex > div:first-child {
	width: 160px;
	text-align: left;
	font-weight: bold;
}

.osteoporosisSection01 .pointBox .displayFlex > div:first-child span {
	width: 9px;
	font-size: 1rem;
	display: inline-block;
}

.osteoporosisSection06 .pointBox > div:first-child:before,
.osteoporosisSection06 .pointBox > div:first-child:after {
	width: calc(50% - 95px);
}

.osteoporosisSection06 .pointBox .displayFlex {
	flex-wrap: wrap;
	justify-content: center;
}

.osteoporosisSection06 .pointBox .displayFlex li {
	color: var(--main-color);
	font-weight: bold;
	padding-bottom: .3rem;
	margin: 0 .5rem;
}

.osteoporosisSection07 .sectionInner {
	background-color: var(--accent-color2);
	padding: calc(30/16 * 1rem);
	box-sizing: border-box;
	position: relative;
}

.osteoporosisSection07 .sectionTitle:after {
	background-color: var(--accent-color);
}

.osteoporosisSection01 .pointBox .displayFlex > div:last-child {
	flex: 1;
	text-align: left;
}

.sportsInjuriesSection03 .flexContainer {
	margin-bottom: 2rem;
}

.listItemDesign.longShape {
	flex-direction: row;
	height: 100px;
	border-radius: 50px;
	padding: 1rem 0;
}

.listItemDesign.longShape + .listItemDesign.longShape {
	margin-top: 2rem;
}

.listItemDesign.longShape > div:first-child {
	width: 230px;
	border-right: 1px solid #FFFFFF;
	height: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	font-size: calc(25/16 * 1rem);
	font-weight: bold;
}

.listItemDesign.longShape > div:last-child {
	flex: 1;
	padding: 0 2rem;
}

.listItemDesign.longShape > div:last-child p {
	font-weight: normal;
}

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

	レスポンシブ responsive
	modified in 03/2025 by worldest

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

@media screen and (max-width: 1069px) {
	.featureContainer > div > div:first-child {
		width: 55%;
		transform: scale(1.2);
	}
	.featureContainer > div > div:last-child {
		width: 45%;
	}

	.featureContainer > div > div:last-child > div {
		left: -5%;
	}

	.featureContainer > div:nth-child(even) > div:last-child > div {
		right: -5%;
	}


}

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

	/* feature */
	.policySection ul > li > div:last-child {
		font-size: calc(18/16 * 1rem);
	}
	.featureContainer > div > div:first-child {
		transform: scale(1.3);
	}
	.specialtiesGrid {
		/* flex-direction: column; */
		justify-content: flex-start;
	}
	.specialtiesGrid > div {
		width: calc(50% - 15px);
	}
	/* ra/osteoporosis/sports-injuries */
	.displayFlex.floatRight {
		display: block;
	}

	.displayFlex.floatRight > div:first-child {
		float: right;
		margin-left: 1.5rem;
		margin-bottom: 1rem;
	}
	.displayFlex.floatRight > div:last-child {
		width: 100%!important;
		width: calc(50% - 1.5rem);
	}

	.displayFlex.floatRight > div:last-child > .headerDesignBottomBorder {
		width: calc(50% - 1.5rem);
	}
}

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

	/* feature */
	.policySection ul > li {
		flex-direction: column;
	}
	.policySection ul > li > div:first-child {
		padding: 0 50px;
		padding-bottom: 20px;
		border-bottom: 1px solid #FFFFFF;
	}
	.policySection ul > li > div:last-child {
		border-left: none;
		padding: 0;
		padding-top: 20px;
	}
	.featureContainer > div  {
		flex-direction: column;
		margin-bottom: 50px;
	}
	.featureContainer > div:nth-child(even) {
		flex-direction: column;
	}
	.featureContainer > div > div:first-child {
		transform: scale(1);
		width: 80%;
	}
	.featureContainer > div > div:last-child {
		width: 80%;
		justify-content: center;
	}
	.featureContainer > div:nth-child(even) > div:last-child {
		justify-content: center;
	}
	.featureContainer > div > div:last-child > div {
		top: -50px;
		left: 0%;
	}
	.featureContainer > div:nth-child(even) > div:last-child > div {
		right: 0%;
	}
	/* ra/osteoporosis/sports-injuries */
	.flexListItemWrapper > div {
		white-space: nowrap;
		max-width: calc(33.3% - 2rem);
	}
	.listItemDesign.longShape {
		flex-direction: column;
		justify-content: center;
		padding: 1rem .5rem;
		height: initial;
		min-height: 120px;
		gap: .5rem;
	}
	.listItemDesign.longShape > div:first-child {
		border-right: none;
		border-bottom: 1px solid #FFFFFF;
		display: block;
		height: initial;
	}
	.listItemDesign.longShape > div:last-child {
		flex: initial;
	}

	/* access */
	.mapContainer iframe {
		height: calc((100vw - 20px) * 9 / 16);
	}

	.routeInstruction > li {
    width: calc(50% - 50px);
	}
	.routeInstruction > li:nth-child(3n) > figure:after {
		display: block;
	}
	.routeInstruction > li:nth-child(2n) > figure:after {
		display: none;
	}


}

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

	.flexContainer {
		flex-direction: column;
	}
	.flexContainer.reverseAtBreakpoint {
		flex-direction: column-reverse;
	}
	.flexContainer > div {
		width: 100%!important;
	}

	/* facility */
	.facilitiesGrid > div,
	.facilitiesItem {
		width: calc(50% - 15px);
	}

	/* feature */
	.featureContainer > div {
		margin-bottom: 30px;
	}
	.featureContainer > div > div:first-child {
		width: 100%;
	}
	.featureContainer > div > div:last-child {
		width: calc(100% - 30px);
	}
	.specialtiesGrid {
		flex-direction: column;
	}
	.specialtiesGrid > div {
		width: 100%;
	}

	/* ra/osteoporosis/sports-injuries */
	.flexListItemWrapper {
		justify-content: flex-start;
	}
	.flexListItemWrapper > div {
		min-width: calc(50% - 1rem);
		width: calc(50% - 1rem);
	}
	.osteoporosisSection07 ul {
		padding: 0;
	}
	.displayFlex.floatLeft {
		display: block;
	}
	.displayFlex.floatLeft > div:first-child {
		float: left;
	}
	.displayFlex.floatRight > div:last-child > .headerDesignBottomBorder {
		width: 100%;
	}

	/* news */
	.newsList > article {
		flex-direction: column;
		align-items: flex-end;
	}
	.newsList > article > header {
		flex-direction: column;
    align-items: flex-start;
		width: 100%;
		padding-right: 0;
	}
	.newsList > article a {
		margin-bottom: 5px;
	}

	.newsTime {
		line-height: 1;
	}

}

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

	/* ra/osteoporosis/sports-injuries */
	.listItemDesign.longShape br {
		display: none;
	}

	/* access */
	.routeInstruction > li,
	.parkingContainer .routeInstruction>li {
		width: 100%;
	}
	.routeInstruction > li > figure:after {
		display: none!important;
	}
	.routeInstruction > li:after {
    content: '';
		display: block;
		margin: 0 auto;
    width: 0;
    height: 0;
    border-left: 50px solid transparent;
    border-right: 50px solid transparent;
    border-top: 50px solid var(--main-color3);
		padding-bottom: 20px;
	}
	.routeInstruction > li:last-child:after {
		display: none!important;
	}
	.parkingContainer .routeInstruction {
		gap: 20px 0;
	}
	.parkingContainer .routeInstruction > li:after {
		display: none!important;
	}
}

@media screen and (max-width: 579px) {
	.flexListItemWrapper {
		flex-direction: column;
	}
	.flexListItemWrapper > div {
		min-width: 100%;
		width: 100%;
	}
	.numberingList > li > div:first-child {
		width: 80px;
	}
	.numberingList > li > div:first-child img {
		height: 70px;
	}
}

@media screen and (max-width: 479px) {
	.sectionCommon {
		padding-top: 50px;
	}
	.sectionCommon p, .sectionCommon div {
    font-size: initial;
    font-size: calc(16 / 16* 1rem);
    line-height: 1.8;
	}
	.sectionTitle {
    font-size: calc(24 / 16* 1rem);
	}

	.headerDesignTopBorder {
    font-size: calc(24 / 16* 1rem);
	}
	.headerDesignTopBorder:before {
		width: 150px;
	}
	.sectionCommon .sectionInner.paddingBottomLarge {
		padding-bottom: 50px;
	}

	.headerDesignLeftBorder {
    font-size: calc(20 / 16* 1rem);
    padding: 0 0 0 1rem;
    margin-bottom: 1.5rem;
	}

	.headerDesignLeftBorder.marginLarge {
    margin-top: calc(50 / 16* 1rem);
	}

	.main > section:last-child, .contents > section:last-child {
    padding-bottom: 50px;
	}

	.flexContainer {
    gap: 10px;
	}

	.pointBox {
		padding-left: 20px;
		padding-right: 20px;
	}

	.pointBox * {
		text-align: left;
	}

	/* facility */
	.facilitiesGrid > div,
	.facilitiesItem {
		width: 100%;
	}

	/* feature */
	.policySection ul > li br {
		display: none;
	}
	.featuresSection .sectionTitle {
		font-size: calc(20/16 * 1rem);
	}
	.featureContainer {
		margin-top: 0;
	}

	/* ra/osteoporosis/sports-injuries */
	.numberingList > li > div:first-child {
		width: 50px;
	}
	.numberingList > li > div:first-child img {
		height: 50px;
	}
	.numberingList > li h4 {
		font-size: calc(20 / 16* 1rem);
		line-height: 1.2;
	}

	.numberingList > li > div:first-child figure {
		text-align: left;
	}

	.raSection03 h4 {
		font-size: calc(18/16 * 1rem);
	}

	.raSection03 h4 + p {
		font-size: calc(16/16 * 1rem);
	}

	.osteoporosisSection05 .headerDesignTopBorder,
	.osteoporosisSection07 .sectionTitle {
		font-size: calc(20/16 * 1rem);
	}

	.osteoporosisSection06 .pointBox .displayFlex {
		justify-content: flex-start;
	}
	.osteoporosisSection07 ul li {
    padding-left: 2rem;
		background-size: 24px auto;
    font-size: calc(18 / 16* 1rem);
	}
	.osteoporosisSection07 .sectionInner {
		padding: 20px;
	}

	/* news */
	.newsList > article > header h3 {
		font-size: calc(20/16 * 1rem);
		line-height: 1.5;
	}

	.newsList > article > header .newsTime {
		font-size: calc(14/16 * 1rem);
	}
	.singlePostSection .headerDesignBottomBorder {
		font-size: calc(24/16 * 1rem);
		line-height: 1.5;
	}
	.newsList > article {
		margin-bottom: 20px;
	}



}

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

	プライバシーポリシー privacypolicy

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

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

	サイトマップ sitemap

*****************************************/
.sitemapSection a:link{color: #333; text-decoration: none;}
.sitemapSection a:visited{color: #333; text-decoration: none;}
.sitemapSection a:hover{color: #333; text-decoration: underline;}
.sitemapSection a:active{color: #333; text-decoration: underline;}

.sitemapSection li{
	display: inline-block;
	margin-right: 3em;
	margin-bottom: 1em;
	padding-left: 24px;
	background: url(/images/common/icon_arrow01.png) left center no-repeat;
}

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

	.sitemapSection li{
		display: block;
		margin-bottom: 0;
		padding-left: 20px;
		background-size: 12px auto;
	}

	.sitemapSection li a{
		display: block;
		padding: 0.5em;
		text-decoration: none;
		font-weight: bold;
	}

	.sitemapSection li a:active{
		background: #EDE9DF;
	}

}


.sitemapSection:last-of-type{
	padding-bottom: 100px;
}

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

	.sitemapSection:last-of-type {
		padding-bottom: 50px;
	}
}
/*****************************************

	404ページ

*****************************************/
.notFound{
	padding-bottom: 4em;
}


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

ユーティリティ
margin/padding

****************************************************************/
/*------------------------------------------------
top
------------------------------------------------*/
	.mt00 { margin-top:  0px !important; }    .pt00 { padding-top:  0px !important; }
	.mt05 { margin-top:  5px !important; }    .pt05 { padding-top:  5px !important; }
	.mt10 { margin-top: 10px !important; }    .pt10 { padding-top: 10px !important; }
	.mt15 { margin-top: 15px !important; }    .pt15 { padding-top: 15px !important; }
	.mt20 { margin-top: 20px !important; }    .pt20 { padding-top: 20px !important; }
	.mt25 { margin-top: 25px !important; }    .pt25 { padding-top: 25px !important; }
	.mt30 { margin-top: 30px !important; }    .pt30 { padding-top: 30px !important; }
	.mt35 { margin-top: 35px !important; }    .pt35 { padding-top: 35px !important; }
	.mt40 { margin-top: 40px !important; }    .pt40 { padding-top: 40px !important; }
	.mt45 { margin-top: 45px !important; }    .pt45 { padding-top: 45px !important; }
	.mt50 { margin-top: 50px !important; }    .pt50 { padding-top: 50px !important; }
	.mt55 { margin-top: 55px !important; }    .pt55 { padding-top: 55px !important; }
	.mt60 { margin-top: 60px !important; }    .pt60 { padding-top: 60px !important; }
	.mt65 { margin-top: 65px !important; }    .pt65 { padding-top: 65px !important; }
	.mt70 { margin-top: 70px !important; }    .pt70 { padding-top: 70px !important; }
	.mt75 { margin-top: 75px !important; }    .pt75 { padding-top: 75px !important; }
	.mt80 { margin-top: 80px !important; }    .pt80 { padding-top: 80px !important; }
	.mt85 { margin-top: 85px !important; }    .pt85 { padding-top: 85px !important; }
	.mt90 { margin-top: 90px !important; }    .pt90 { padding-top: 90px !important; }
	.mt95 { margin-top: 95px !important; }    .pt95 { padding-top: 95px !important; }
	.mt100{ margin-top:100px !important; }    .pt100{ padding-top:100px !important; }

/*------------------------------------------------
right
------------------------------------------------*/
	.mr00 { margin-right:  0px !important; }  .pr00 { padding-right:  0px !important; }
	.mr05 { margin-right:  5px !important; }  .pr05 { padding-right:  5px !important; }
	.mr10 { margin-right: 10px !important; }  .pr10 { padding-right: 10px !important; }
	.mr15 { margin-right: 15px !important; }  .pr15 { padding-right: 15px !important; }
	.mr20 { margin-right: 20px !important; }  .pr20 { padding-right: 20px !important; }
	.mr25 { margin-right: 25px !important; }  .pr25 { padding-right: 25px !important; }
	.mr30 { margin-right: 30px !important; }  .pr30 { padding-right: 30px !important; }
	.mr35 { margin-right: 35px !important; }  .pr35 { padding-right: 35px !important; }
	.mr40 { margin-right: 40px !important; }  .pr40 { padding-right: 40px !important; }
	.mr45 { margin-right: 45px !important; }  .pr45 { padding-right: 45px !important; }
	.mr50 { margin-right: 50px !important; }  .pr50 { padding-right: 50px !important; }
	.mr55 { margin-right: 55px !important; }  .pr55 { padding-right: 55px !important; }
	.mr60 { margin-right: 60px !important; }  .pr60 { padding-right: 60px !important; }
	.mr65 { margin-right: 65px !important; }  .pr65 { padding-right: 65px !important; }
	.mr70 { margin-right: 70px !important; }  .pr70 { padding-right: 70px !important; }
	.mr75 { margin-right: 75px !important; }  .pr75 { padding-right: 75px !important; }
	.mr80 { margin-right: 80px !important; }  .pr80 { padding-right: 80px !important; }
	.mr85 { margin-right: 85px !important; }  .pr85 { padding-right: 85px !important; }
	.mr90 { margin-right: 90px !important; }  .pr90 { padding-right: 90px !important; }
	.mr95 { margin-right: 95px !important; }  .pr95 { padding-right: 95px !important; }
	.mr100{ margin-right:100px !important; }  .pr100{ padding-right:100px !important; }

/*------------------------------------------------
bottom
------------------------------------------------*/
	.mb00 { margin-bottom:  0px !important; } .pb00 { padding-bottom:  0px !important; }
	.mb05 { margin-bottom:  5px !important; } .pb05 { padding-bottom:  5px !important; }
	.mb10 { margin-bottom: 10px !important; } .pb10 { padding-bottom: 10px !important; }
	.mb15 { margin-bottom: 15px !important; } .pb15 { padding-bottom: 15px !important; }
	.mb20 { margin-bottom: 20px !important; } .pb20 { padding-bottom: 20px !important; }
	.mb25 { margin-bottom: 25px !important; } .pb25 { padding-bottom: 25px !important; }
	.mb30 { margin-bottom: 30px !important; } .pb30 { padding-bottom: 30px !important; }
	.mb35 { margin-bottom: 35px !important; } .pb35 { padding-bottom: 35px !important; }
	.mb40 { margin-bottom: 40px !important; } .pb40 { padding-bottom: 40px !important; }
	.mb45 { margin-bottom: 45px !important; } .pb45 { padding-bottom: 45px !important; }
	.mb50 { margin-bottom: 50px !important; } .pb50 { padding-bottom: 50px !important; }
	.mb55 { margin-bottom: 55px !important; } .pb55 { padding-bottom: 55px !important; }
	.mb60 { margin-bottom: 60px !important; } .pb60 { padding-bottom: 60px !important; }
	.mb65 { margin-bottom: 65px !important; } .pb65 { padding-bottom: 65px !important; }
	.mb70 { margin-bottom: 70px !important; } .pb70 { padding-bottom: 70px !important; }
	.mb75 { margin-bottom: 75px !important; } .pb75 { padding-bottom: 75px !important; }
	.mb80 { margin-bottom: 80px !important; } .pb80 { padding-bottom: 80px !important; }
	.mb85 { margin-bottom: 85px !important; } .pb85 { padding-bottom: 85px !important; }
	.mb90 { margin-bottom: 90px !important; } .pb90 { padding-bottom: 90px !important; }
	.mb95 { margin-bottom: 95px !important; } .pb95 { padding-bottom: 95px !important; }
	.mb100{ margin-bottom:100px !important; } .pb100{ padding-bottom:100px !important; }

/*------------------------------------------------
left
------------------------------------------------*/
	.ml00 { margin-left:  0px !important; }   .pl00 { padding-left:  0px !important; }
	.ml05 { margin-left:  5px !important; }   .pl05 { padding-left:  5px !important; }
	.ml10 { margin-left: 10px !important; }   .pl10 { padding-left: 10px !important; }
	.ml15 { margin-left: 15px !important; }   .pl15 { padding-left: 15px !important; }
	.ml20 { margin-left: 20px !important; }   .pl20 { padding-left: 20px !important; }
	.ml25 { margin-left: 25px !important; }   .pl25 { padding-left: 25px !important; }
	.ml30 { margin-left: 30px !important; }   .pl30 { padding-left: 30px !important; }
	.ml35 { margin-left: 35px !important; }   .pl35 { padding-left: 35px !important; }
	.ml40 { margin-left: 40px !important; }   .pl40 { padding-left: 40px !important; }
	.ml45 { margin-left: 45px !important; }   .pl45 { padding-left: 45px !important; }
	.ml50 { margin-left: 50px !important; }   .pl50 { padding-left: 50px !important; }
	.ml55 { margin-left: 55px !important; }   .pl55 { padding-left: 55px !important; }
	.ml60 { margin-left: 60px !important; }   .pl60 { padding-left: 60px !important; }
	.ml65 { margin-left: 65px !important; }   .pl65 { padding-left: 65px !important; }
	.ml70 { margin-left: 70px !important; }   .pl70 { padding-left: 70px !important; }
	.ml75 { margin-left: 75px !important; }   .pl75 { padding-left: 75px !important; }
	.ml80 { margin-left: 80px !important; }   .pl80 { padding-left: 80px !important; }
	.ml85 { margin-left: 85px !important; }   .pl85 { padding-left: 85px !important; }
	.ml90 { margin-left: 90px !important; }   .pl90 { padding-left: 90px !important; }
	.ml95 { margin-left: 95px !important; }   .pl95 { padding-left: 95px !important; }
	.ml100{ margin-left:100px !important; }   .pl100{ padding-left:100px !important; }

/*------------------------------------------------
all 全方位
------------------------------------------------*/
	.ma00{ margin: 0 !important; }   .pa00{ padding: 0 !important; }

/*------------------------------------------------
センター寄せ
------------------------------------------------*/
.mc{ margin: 0 auto;}

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

	フォントカラー　color

*****************************************/
.caution{ color:#f00 !important; }
.black{ color:#000 !important;}



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

	フォントの太さ　font-weight

*****************************************/
.bold{font-weight:bold;}
strong,
.attention{
	display: inline;
	padding: 0 0.3em;
	background: #f8d8aa;
}

.ie6 strong,
.ie6 .attention{
	zoom:1;
}

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

	フォントサイズ　font-size

*****************************************/
.font9px{ font-size: 9px; }    .font10px{ font-size: 10px; }
.font11px{ font-size: 11px; }  .font12px{ font-size: 12px; }
.font13px{ font-size: 13px; }  .font14px{ font-size: 14px; }
.font15px{ font-size: 15px; }  .font16px{ font-size: 16px; }
.font17px{ font-size: 17px; }  .font18px{ font-size: 18px; }
.font19px{ font-size: 19px; }  .font20px{ font-size: 20px; }
.font21px{ font-size: 21px; }  .font22px{ font-size: 22px; }
.font23px{ font-size: 23px; }  .font24px{ font-size: 24px; }
.font25px{ font-size: 25px; }  .font26px{ font-size: 26px; }
.font27px{ font-size: 27px; }  .font28px{ font-size: 28px; }
.font29px{ font-size: 29px; }  .font30px{ font-size: 30px; }

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

	横幅　width

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

.w100{width: 100px !important;}
.w110{width: 110px !important;}
.w120{width: 120px !important;}
.w130{width: 130px !important;}
.w140{width: 140px !important;}
.w150{width: 150px !important;}
.w160{width: 160px !important;}
.w170{width: 170px !important;}
.w180{width: 180px !important;}
.w190{width: 190px !important;}
.w200{width: 200px !important;}
.w210{width: 210px !important;}
.w220{width: 220px !important;}
.w230{width: 230px !important;}
.w240{width: 240px !important;}
.w250{width: 250px !important;}
.w260{width: 260px !important;}
.w270{width: 270px !important;}
.w280{width: 280px !important;}
.w290{width: 290px !important;}
.w300{width: 300px !important;}
.w310{width: 310px !important;}
.w320{width: 320px !important;}
.w330{width: 330px !important;}
.w340{width: 340px !important;}
.w350{width: 350px !important;}
.w360{width: 360px !important;}
.w370{width: 370px !important;}
.w380{width: 380px !important;}
.w390{width: 390px !important;}
.w400{width: 400px !important;}
.w410{width: 410px !important;}
.w420{width: 420px !important;}
.w430{width: 430px !important;}
.w440{width: 440px !important;}
.w450{width: 450px !important;}
.w460{width: 460px !important;}
.w470{width: 470px !important;}
.w480{width: 480px !important;}
.w490{width: 490px !important;}
.w500{width: 500px !important;}
.w510{width: 510px !important;}
.w520{width: 520px !important;}
.w530{width: 530px !important;}
.w540{width: 540px !important;}
.w550{width: 550px !important;}
.w560{width: 560px !important;}
.w570{width: 570px !important;}
.w580{width: 580px !important;}
.w590{width: 590px !important;}
.w600{width: 600px !important;}


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

float

****************************************************************/
	.fl { float: left; }        .fr { float: right; }       .clear { clear:both; }

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

text-align

****************************************************************/
	.al { text-align: left !important; }
	.ar { text-align: right !important; }
	.ac { text-align: center !important; }

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

clearfix

****************************************************************/
	.clearfix { zoom:1; }
	.clearfix:after { content:"."; display: block; height:0px; clear:both; line-height:0; visibility:hidden; }

.hidden{ overflow: hidden;}

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

ellipsis

****************************************************************/
/*文章の省略*/
.ellipsis {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-text-overflow: ellipsis;
  -o-text-overflow: ellipsis;
}

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

display

****************************************************************/
.none { display: none !important;}
.block {display:block !important;}
.inline {display:inline;}
.inline-block{display:inline-block;}

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

position

****************************************************************/
.static{ position: static;}
.relative{ position: relative;}
.absolute{ position: absolute;}
.fixed{ position: fixed;}



/* cl-maeda.com風カルーセルスライダー */
.mainVisualWrapper {
  width: 100%;
  margin: 50px auto 0;
  position: relative;
  overflow: visible;
  aspect-ratio: 18/10;
}

.mainVisualSlider {
  position: relative;
  width: 100%;
  height: 100%;
}

.slide {
  position: absolute;
  top: 0; left: 50%;
  width: auto;
  max-width: 1080px;
  height: 100%;
  max-height: 600px;
  aspect-ratio: 18/10;
  opacity: 0;
  z-index: 1;
  transform: translateX(-50%) scale(0.7);
  transition: all 0.6s cubic-bezier(0.4,0,0.2,1);
}

.slide img {
  width: 100%;
  height: 100%;
  max-width: 1080px;
  max-height: 600px;
  object-fit: cover;
  aspect-ratio: 18/10;
  display: block;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.slide.center {
  opacity: 1;
  z-index: 3;
  transform: translateX(-50%) scale(1);
}
.slide.prev {
  opacity: 0.7;
  z-index: 2;
  transform: translateX(-120%) scale(0.7);
}
.slide.next {
  opacity: 0.7;
  z-index: 2;
  transform: translateX(20%) scale(0.7);
}

/* --- 1080px以上はパディング・gapなし、slide幅100% --- */
@media (min-width: 1080px) {
	.mainVisualWrapper {
		padding-left: 0;
		padding-right: 0;
		max-height: 600px;
	}

	.mainVisualSlider {
		gap: 0;
		max-height: 600px;
	}

	.slide {
		flex: 0 0 100%;
		width: 100%;
		max-height: 600px;
	}

	.slide img {
		max-height: 600px;
	}
}

@media (max-width: 900px) {
  .slide, .slide img {
    max-width: 90vw;
    /* max-height: 250px; */
  }
}
@media (max-width: 600px) {
  .slide, .slide img {
    max-width: 100vw;
    /* max-height: 160px; */
  }
}

/*------------------------------------------------------------
sp-side-menu(renewal)
-------------------------------------------------------------*/
.common-sp-side-menu,
.sp-contact-modal,
#contactModal,
.black-layer {
	display: none;
}

.common-sp-side-menu a:hover,
.common-sp-side-menu a:focus,
.common-sp-side-menu a:active,
.common-sp-side-menu a:visited,
.common-sp-side-menu a:link{
	text-decoration: none;
}

@media (max-width: 1019px) {
	.common-sp-side-menu {
		display: flex;
		align-items: center;
		justify-content: center;
		position: fixed;
		bottom: 0;
		background: #0B6FAD;
		z-index: 10;
		width: 100%;
		transition: bottom 0.3s;
	}

	.common-sp-side-menu.hidden {
		bottom: -90px;
	}

	.common-sp-side-menu>* {
		width: calc(100% / 2);
		color: #fff !important;
		font-family: serif;
		text-align: center;
		height: 60px;
		display: flex;
		align-items: center;
		justify-content: center;
		flex-direction: column;
		cursor: pointer;
	}

	.englishReservation,
	.englishTel {
		width: 50%;
		box-sizing: border-box;
	}

	.common-sp-side-menu>*:not(:last-child) {
		border-right: 1px solid #fff;
	}

	.common-sp-side-menu .tel {
		margin: 0;
	}

	.sp-contact-modal {
		position: fixed;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		width: 90%;
		max-width: 400px;
		background: #fff;
		border-radius: 10px;
		padding: 30px 20px;
		box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
		z-index: 10001;
		display: none;
		text-align: center;
	}

	.sp-contact-modal .sentence-01 {
		font-size: 18px;
		font-weight: bold;
		color: #333;
		line-height: 1.4;
	}

	.sp-contact-modal .phone-section {
		margin-bottom: 20px;
	}

	.sp-contact-modal .phone-item {
		background: #f8f8f8;
		border-radius: 8px;
		padding: 15px;
		margin-bottom: 15px;
		border: 2px solid #e0e0e0;
	}

	.sp-contact-modal .phone-item:last-child {
		margin-bottom: 0;
	}

	.sp-contact-modal .phone-item h3 {
		font-size: 16px;
		font-weight: bold;
		color: #333;
		margin: 0 0 5px 0;
		line-height: 1.3;
	}

	.sp-contact-modal .phone-description {
		font-size: 14px;
		color: #666;
		margin: 0 0 10px 0;
		line-height: 1.3;
	}

	.sp-contact-modal .tel {
		display: flex;
		align-items: center;
		justify-content: center;
		background: #1fac9d;
		color: #fff;
		text-decoration: none;
		padding: 12px 20px;
		border-radius: 6px;
		font-size: 18px;
		font-weight: bold;
		transition: background-color 0.3s ease;
		line-height: 1.2;
	}

	.sp-contact-modal .main-tel {
		background: #1fac9d;
	}

	.sp-contact-modal .main-tel:hover {
		background: #1a8f82;
		opacity: 0.9;
	}

	.sp-contact-modal .rehab-tel {
		background: #f77246;
	}

	.sp-contact-modal .rehab-tel:hover {
		background: #e45f33;
		opacity: 0.9;
	}

	.sp-contact-modal .tel img {
		width: 21px;
		height: 28px;
		margin-right: 8px;
	}

	.sp-contact-modal .sentence-02 {
		border-radius: 6px;
		padding: 12px 15px;
		margin-bottom: 15px;
		font-size: 14px;
		line-height: 1.4;
	}

	.sp-contact-modal .sentence-02 .th {
		font-weight: bold;
		color: #333;
		display: block;
		margin-bottom: 5px;
	}

	.sp-contact-modal .sentence-02 .td {
		color: #666;
		display: block;
	}

	.sp-contact-modal .sentence-03 {
		font-size: 12px;
		color: #999;
		margin: 0;
		line-height: 1.3;
	}

	/* より小さな画面サイズでの調整 */
	@media screen and (max-width: 479px) {
		.sp-contact-modal {
			width: 95%;
			max-width: 350px;
			padding: 25px 15px;
		}

		.sp-contact-modal .sentence-01 {
			font-size: 16px;
		}

		.sp-contact-modal .phone-item {
			padding: 12px;
			margin-bottom: 12px;
		}

		.sp-contact-modal .phone-item h3 {
			font-size: 15px;
		}

		.sp-contact-modal .phone-description {
			font-size: 13px;
		}

		.sp-contact-modal .tel {
			padding: 10px 15px;
			font-size: 16px;
		}

		.sp-contact-modal .tel img {
			width: 11px;
			height: 14px;
			margin-right: 6px;
		}

		.sp-contact-modal .sentence-02 {
			padding: 10px 12px;
			font-size: 13px;
		}

		.sp-contact-modal .sentence-03 {
			font-size: 11px;
		}
	}

	.black-layer {
		display: none;
		position: fixed;
		height: 100%;
		width: 100%;
		left: 0;
		top: 0;
		z-index: 5;
		background: #000;
		opacity: 0.7;
		margin: 0;
	}

	#contactModal:checked+.sp-contact-modal {
		display: block;
	}

	#contactModal:checked+.sp-contact-modal+.black-layer {
		display: block;
	}

	body.home .top-page .main-menu-02 {
		padding: 1px 0;
	}

	body.home .top-page .main-menu-02 .box {
		margin-bottom: 1px;
	}

	body.home .top-page .main-menu-02 .banner {
		padding: 15px 15px;
	}

	body.home .top-page .moment h3 {
		font-size: 18px;
		margin-bottom: 15px;
	}

	body.home .top-page .moment .box-sentence {
		text-align: left;
		font-size: 13px;
		line-height: 1.6em;
	}

	body.home .top-page .moment .moment__buttons {
		font-size: 14px;
		padding: 0 40px;
		line-height: 2.6em;
	}

	body.home .top-page .moment .box .wrap {
		text-align: center;
		padding: 20px 20px;
	}

	body.home .top-page .access .box-wrap .box {
		margin-bottom: 10px;
		width: 49%;
		padding: 10px 5%;
		border-radius: 5px;
	}

	body.home .top-page .access .box-wrap .box:last-child {
		margin-bottom: 0;
	}

	body.home .top-page .access .box-wrap .box span {
		width: 75%;
		text-align: center;
		display: inline-block;
		margin: 0;
	}

	body.home .top-page .access .box-wrap .box img {
		width: 15%;
		height: auto;
		margin-right: 0;
	}

	body.home .top-page .other h3 {
		font-size: 20px;
		margin-bottom: 20px;
	}

	.common-sp-side-menu img {
		width: auto;
		height: 15px;
		margin-bottom: 5px;
	}

	.common-sp-side-menu>* {
		font-size: 13px;
	}

	.common-footer {
		padding: 30px 20px;
	}

	.common-footer .sns {
		font-size: 12px;
		display: -webkit-flex;
		/* Safari */
		display: flex;
		-webkit-flex-wrap: wrap;
		/* Safari */
		flex-wrap: wrap;
		-webkit-justify-content: space-between;
		/* Safari */
		justify-content: space-between;
		flex-direction: row;
	}

	.common-footer .sns>a {
		min-height: 0;
		margin-bottom: 10px;
		width: 49%;
		padding: 10px 5%;
		border-radius: 5px;
	}

	.common-footer .sns>a:not(:last-child) {
		margin-bottom: 10px;
	}

	.common-footer .sns>a:nth-last-child(-n+2) {
		margin-bottom: 0;
	}

	.common-footer .sns>a>span {
		width: 85%;
		text-align: center;
	}

	.common-footer .sns .line>img,
	.common-footer .sns .facebook>img,
	.common-footer .sns .hakkei-instagram>img,
	.common-footer .sns .okami-instagram>img {
		width: 15%;
		height: auto;
		margin-right: 15px;
	}

	#biz_calendar {
		width: 100%;
		max-width: none;
	}

	#biz_calendar p {
		padding-left: 0;
	}

	.footer-address {
		padding: 20px 15px;
	}

	.footer-address>img {
		width: 60px;
	}

	br.sp {
		display: inline !important;
	}

	.visible-sp-block {
		display: block !important;
	}

	.visible-sp-inline {
		display: inline !important;
	}

	/* オーバーライドされないようにこの位置 */
	.hidden-sp {
		display: none;
	}
}

/* 横スクロールバーを出さないための対策 */
body, html {
  overflow-x: hidden;
}

.mainVisualWrapper,
.mainVisualSlider {
  width: 100vw;
  max-width: 100vw;
  overflow-x: hidden;
  box-sizing: border-box;
}

.mainVisualSlider .slide img {
  width: 100%;
  height: auto;
  display: block;
  max-width: 100vw;
}

/* 来院時の必要書類セクション */
.requiredItemsContainer {
    max-width: 800px;
    margin: 0 auto;
    padding: 20px;
}

.requiredItemsSection ul li {
    margin-bottom: 15px;
}

/*
 治療内容ページ
 ---------------------------------- */

/* 見出しのスタイル */

.beforeTitle01 {
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--textColor);
	margin: 2rem 0 1rem 0;
}

.beforeTitle01::before {
	content: '■';
	color: var(--primaryColor);
	margin-right: 0.5em;
}

/* 疾患一覧セクション */
.diseaseListSection .categoryGrid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 1.5rem;
}

.diseaseCategory {
	background-color: var(--whiteColor);
	padding: 1.5rem;
	border-radius: 8px;
	border: 1px solid var(--borderColor);
}

.diseaseCategory .service-icon{
	margin-bottom: 1rem;
	background: #0B6FAD;
}

.diseaseCategory .service-icon img{
	width: unset;
}

.diseaseCategory h3 {
	font-size: 1.2rem;
	border: none;
	padding: 0;
	margin-bottom: 1rem;
	color: var(--primaryColor);
}

.diseaseCategory ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.diseaseCategory li a {
	color: var(--primaryColor);
	transition: color 0.3s;
}

.diseaseCategory li a:hover {
	color: var(--accentColor);
}

/* 詳細治療内容セクション */
.treatmentArticle {
	background-color: var(--whiteColor);
	padding: 2.5rem;
	margin-bottom: 2.5rem;
	border-radius: 8px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.treatmentArticle:last-child {
	margin-bottom: 0;
}

/* 治療アプローチセクション */
.treatmentApproachSection .approachGrid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
	gap: 1.5rem;
	text-align: center;
}

.approachCard {
	background: var(--whiteColor);
	padding: 2rem;
	border-radius: 8px;
	border: 1px solid var(--borderColor);
}

.approachCard h3 {
	border: none;
	padding: 0;
}

.approachCard p {
	margin-bottom: 0;
}

/* お問い合わせセクション */
.contactSection {
	text-align: center;
	background: #f7f7f7;
}

.contactSection .tel {
	font-size: 1.75rem;
	font-weight: 700;
	margin-bottom: 1.5rem;
}

.contactSection .tel a {
	color: var(--primaryColor);
	text-decoration: none;
}

.ctaButton {
	display: inline-block;
	background: #fff;
	padding: 1rem 3rem;
	border-radius: 50px;
	text-decoration: none;
	font-weight: 700;
	transition: transform 0.3s, box-shadow 0.3s;
	box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
	box-sizing: border-box;
	text-decoration: none !important;
}

.ctaButton:hover {
	transform: translateY(-3px);
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}

.clinicInfo {
	margin-top: 2rem;
	line-height: 1.8;
}

.treatmentDetailSection{
	padding-bottom: 3em;
}

/* レスポンシブ対応 (タブレット) */
@media (max-width: 768px) {
	#treatment > section {
		padding: 3rem 0;
	}

	.treatmentArticle {
		padding: 2rem;
	}
}

/* レスポンシブ対応 (スマートフォン) */
@media (max-width: 480px) {
	.container {
		padding-left: 16px;
		padding-right: 16px;
	}

	.ctaButton {
		padding: 0.8rem 2rem;
		width: 100%;
	}

	.treatmentArticle {
		padding: 1.5rem;
	}
}

/*
予防接種ページ
---------------------------------- */
.reservationTel01 img{
	width: 100%;
	max-width: 200px;
	height: auto;
	margin-bottom: 10px;
}

/* 導入セクション */
.introSection img {
	max-width: 100%;
	height: auto;
	border-radius: 8px;
	margin-bottom: 20px;
}

/* 予防接種を受ける前に */
.beforeVaccination .infoItem {
	margin-bottom: 30px;
}

.beforeVaccination .infoItem h3 {
	margin-bottom: 15px;
}

.beforeVaccination .highlight {
	color: #e74c3c;
	font-weight: bold;
}

/* 予防接種の種類 */
.vaccineCardList{
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	justify-content: space-between;
	align-items: stretch;
	margin-bottom: 20px;
}

@media (max-width: 768px) {
	.vaccineCardList{
		flex-direction: column;
	}
}

.vaccineCard {
	border: 1px solid #eee;
	border-radius: 8px;
	padding: 25px;
	margin-bottom: 25px;
	background-color: #fdfdfd;
	width: 48%;
	box-sizing: border-box;
}

@media (max-width: 768px) {
	.vaccineCard{
		width: 100%;
	}
}

.vaccineCard h3 {
	color: #2980b9;
	margin-top: 0;
	margin-bottom: 15px;
	border-bottom: 1px dashed #eee;
	padding-bottom: 10px;
}

.vaccineCard ul li {
	font-size: 0.95em;
}

.vaccineCard ul li strong {
	color: #444;
}

/* よくあるご質問 */
.faqSection .faqItem {
	margin-bottom: 20px;
	border-bottom: 1px dashed #eee;
	padding-bottom: 15px;
}

.faqSection .faqItem:last-child {
	border-bottom: none;
	padding-bottom: 0;
}

.faqSection .faqItem strong {
	display: block;
	margin-bottom: 5px;
	color: #34495e;
}

@media screen and (min-width: 1025px) {
  .service-item {
    aspect-ratio: 1/1;
    min-height: 0;
    height: auto;
    padding: 1.2rem 0.5rem 0.8rem 0.5rem;
    font-size: 0.95rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }
  .service-item .service-icon {
    height: 60px;
    padding: 0;
    margin-bottom: 0.5em;
  }
  .service-item .service-icon img {
    max-height: 48px;
    width: auto;
  }
  .service-item p {
    font-size: 1em;
    padding: 0.5em 0 0;
    border-top: 2px solid #fff;
    margin: 0;
  }
}

/* スライダードット（bullet） */
.mainVisualBullets {
  text-align: center;
  margin-top: 10px;
  margin-bottom: 10px;
}
.mainVisualBullet {
  display: inline-block;
  width: 12px;
  height: 12px;
  margin: 0 5px;
  border-radius: 50%;
  background: #ccc;
  cursor: pointer;
  vertical-align: middle;
  transition: background 0.2s, width 0.2s, height 0.2s;
}
.mainVisualBullet.active {
  background: #1976d2;
  width: 18px;
  height: 18px;
}
@media (max-width: 600px) {
  .mainVisualBullets {
    margin-top: 6px;
    margin-bottom: 6px;
  }
  .mainVisualBullet {
    width: 9px;
    height: 9px;
    margin: 0 3px;
  }
  .mainVisualBullet.active {
    width: 13px;
    height: 13px;
  }
}

/* スライダードット（bullet） */
.mainVisualWrapper {
  position: relative;
}
.mainVisualBullets {
  position: absolute;
  left: 50%;
  bottom: 15px;
  transform: translateX(-50%);
  z-index: 10;
  text-align: center;
  margin: 0;
  width: auto;
  pointer-events: auto;
}
.mainVisualBullet {
  display: inline-block;
  width: 12px;
  height: 12px;
  margin: 0 5px;
  border-radius: 50%;
  background: #ccc;
  cursor: pointer;
  vertical-align: middle;
  transition: background 0.2s, width 0.2s, height 0.2s;
}
.mainVisualBullet.active {
  background: #1976d2;
  width: 18px;
  height: 18px;
}
@media (max-width: 600px) {
  .mainVisualBullets {
    bottom: 8px;
  }
  .mainVisualBullet {
    width: 9px;
    height: 9px;
    margin: 0 3px;
  }
  .mainVisualBullet.active {
    width: 13px;
    height: 13px;
  }
}


