body {
    min-width:none;
    -webkit-text-size-adjust:100%;
    height:100%;
    font-size: 0.9rem;
}

#MDQ{display:none;}
.spNone{display:none !important;}


/*---------------------------------------------------------------------------
コンテンツ大枠
---------------------------------------------------------------------------*/
#container {
    width:100%;
}

.contents_window {
    width: auto;
    margin:0 auto;
    padding-bottom: 50px;
    background-color: #f7f5ef;
    position: relative;
    z-index: 120;
}

.CB1100{max-width:auto; margin:0 15px;}
.CB1200{max-width:auto; margin:0 15px;}


/*---------------------------------------------------------------------------
共通CSS
---------------------------------------------------------------------------*/

/*------------　ページトップ　-----------*/

.pagetopBtn {
    position: fixed;
	width: 40px;
	height: 40px;
    bottom: calc(110px + constant(safe-area-inset-bottom));
    bottom: calc(110px + env(safe-area-inset-bottom));
    right: 15px;
	margin: auto;
    padding: 0;
    display: block;
	overflow: hidden;
	background-color: #262e8b;
	box-sizing: border-box;
	text-decoration:none;
	text-align: center;
	z-index: 999;
	border: 2px solid #262e8b;
    transition: all .2s;
}

.pagetopBtn::after{
    content: '';
    width: 10px;
    height: 10px;
    border: 0px;
    border-top: solid 2px #fff;
    border-right: solid 2px #fff;
    -ms-transform: rotate(-45deg);
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    position: absolute;
    top: 53%;
    right: 12px;
    margin-top: -6px;
}


/*------------ ページ下リンク ------------*/
.ft_reserveWrap{
    background-color: #951a37;
    padding: 20px 15px;
    position: relative;
    z-index: 1;
}

.ft_reserveContents{
    color: #fff;
}

.ft_reserveContents p{
    font-size: 1.2rem;
    text-align: center;
}

.ft_reserveContents .ft_reserveNote{
    display: block;
    margin-top: 8px;
    font-size: 0.95rem;
    font-weight: 500;
    line-height: 1.5;
}

.ft_reserveContents a{
    display: block;
    padding: 10px 50px;
    background-color: #fff;
    color: #951a37;
    border-radius: 10px;
    box-shadow: 0 6px 0 #580c20;
    position: relative;
    font-size: 1rem;
	text-align: center;
}

.ft_reserveContents a::before{
    content: "→";
    position: absolute;
    left: 20px;
    top: 21%;
    display: block;
}

.ft_reserveContents a:hover{
    top: 2px;
    right: -1px;
    box-shadow: 0 3px 0 #580c20;
}


/*------------ 診療時間　table ------------*/
.timeScheduleBox{
    border-radius: 10px;
    background-color: #fff;
    overflow: hidden;
}

.timeScheduleBox table{
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 0;
    border-radius: 10px;
    width: 100%;
    border: 1px solid #ccc;
}

.timeScheduleBox table th{
    background-color: #5158a2;
    color: #fff;
    padding: 15px 0px;
    font-weight: normal;
}

.timeScheduleBox table th.timeTitle{
    width: 22%;
    text-align: left;
}

.timeScheduleBox table th:first-child,
.timeScheduleBox table th:last-child{width: 5%}

.timeScheduleBox table td{
    text-align: center;
    color: #262e8b;
    padding: 15px 0px;
}

.timeScheduleBox table td{
    border-bottom: 1px solid #ccc;
}

.timeScheduleBox table tr td:first-child,
.timeScheduleBox table tr td:last-child{border-bottom:none;}

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

.timeScheduleBox table td.time{
    text-align: left;
    color: #333;
}
.timeScheduleNote{
    text-align: center;
    color: #333;
	margin-top: 5px;
}
.timeScheduleNote p{
	font-size: 0.7rem;
	line-height: 1.4;
	margin-top: 5px;
}
.timeScheduleNote p > .SP {
display: inline-block !important;
}
.timeScheduleNote p > .PC {
display: none !important;
}

/*------------ テニス肘バナー ------------*/
.tennis_elbow_bnr {
    text-align: center;
}
.tennis_elbow_bnr.top {
    padding-top: 160px;
}
.tennis_elbow_bnr.case {
    margin-top: -6vw;
    padding-right: 15px;
    padding-left: 15px;
}



/*---------------------------------------------------------------------------
ヘッダー
---------------------------------------------------------------------------*/

#header{
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 70px;
    background-color: #fff;
    z-index: 1000;
}

.headerContents{
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
}

.headerLogoBox a{
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    color:#4d4d4d;
}

.headerLogoBox .logo{
    padding: 15px 0px 0px 10px;
    width: 50px;
}

.headerLogoBox a:hover img{opacity: 1;}

.headerTitle{
    width: 200px;
    padding-top: 15px;
    margin-left: 5px
}

.headerTitle h1{line-height: 1;}

.headerTitle img{
    width: 200px;
    vertical-align: middle;
}

.headerTitle p{
    padding-top: 2px;
    text-align: left;
    font-size:0.75rem;
}


/*----- ヘッダーメニュー -----*/

.headerMenu{}
.headerMenu .spmenu_drawr,
.headerMenu .spmenu_drawr span {
    display: inline-block;
    transition: all .3s;
    box-sizing: border-box;
}

.headerMenu .spmenu_drawr {
    position: fixed;
    top: 10px;
    right: 0;
    width: 50px;
    height: 50px;
    cursor: pointer;
    z-index: 9999;
    text-align: center;
}
.burger-menu {
    display: flex; /* 横並びにする */
    flex-direction: column; /* 縦方向に配置 */
    align-items: center; /* 中央揃え */
    height: 100%; /* 高さを100%に設定 */
}

.bar {
    display: block; /* ブロック要素として表示 */
    width: 30px; /* バーの幅 */
    height: 4px; /* バーの高さ */
    background-color: #333; /* バーの色 */
    margin: 4px 0; /* バーの間隔 */
}

.menu-text {
    margin-top: 40px; /* テキストとバーの間隔 */
    font-size: 8px; /* テキストのサイズ */
    color: #951937; /* テキストの色 */
    text-align: center; /* テキストを中央揃え */
    line-height: 1.2; /* 行の高さを設定 */
    font-weight: bold; /* フォントを太くする */
}
.headerMenu .spmenu_drawr span {
    position: absolute;
    left: 0;
    right: 0;
    margin: 0 auto;
    width: 30px;
    height: 2px;
    background-color: #951a37;
}
.headerMenu .spmenu_drawr span:nth-of-type(1) {
    top: 15px;
}
.headerMenu .spmenu_drawr span:nth-of-type(2) {
    top: 24px;
}
.headerMenu .spmenu_drawr span:nth-of-type(3) {
    top: 33px;
}

.headerMenu .spmenu_drawr.active span{background-color: #951a37;}

.headerMenu .spmenu_drawr.active span:nth-child(1) {
	top: 24px;
	-webkit-transform: rotate(315deg);
	-moz-transform: rotate(315deg);
	transform: rotate(315deg);
}
.headerMenu .spmenu_drawr.active span:nth-child(2) {
	width: 0;
}
.headerMenu .spmenu_drawr.active span:nth-child(3) {
	top: 24px;
	-webkit-transform: rotate(-315deg);
	-moz-transform: rotate(-315deg);
	transform: rotate(-315deg);
}

.nav_container{
    -webkit-overflow-scrolling: touch;
    background-color:rgba(255, 255, 255, 0.9);
    position: fixed;
    top: 0;
    right:0;
    width:100%;
    height:100%;
    z-index: 999;
    margin-top: 70px;
    padding-top: 5%;
    overflow: auto;
    transform: translate(100%);
    transition: 0.3s ease;
}

.nav_container.open{
    transform: translate(0);
}

.nav_container ul{
    padding: 0 15px;
    color: #263994;
}

.nav_container ul li{
    text-align: left;
    margin-bottom: 12px;
    font-size: 1.25rem;
}

.nav_container ul li a{
    box-sizing: border-box;
    color: #263994;
    padding: 7px 5px 7px 50px;
    display: block;
    position: relative;
}

.nav_container ul li a::after{
    content: '';
    width: 8px;
    height: 8px;
    border: 0px;
    border-top: solid 2px #263994;
    border-right: solid 2px #263994;
    -ms-transform: rotate(45deg);
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    position: absolute;
    top: 50%;
    right: 20px;
    margin-top: -6px;
}

.nav_container ul li.Hd_navHome a{
    background-image: url("../image/header/link_icon_home.png");
    background-position: 10px center;
    background-repeat: no-repeat;
}

.nav_container ul li.Hd_nav01 a{
    background-image: url(../image/header/link_icon01.png);
    background-position: 10px center;
    background-repeat: no-repeat;
}

.nav_container ul li.Hd_nav02 a{
    background-image: url(../image/header/link_icon02.png);
    background-position: 10px center;
    background-repeat: no-repeat;
}

.nav_container ul li.Hd_nav03 a{
    background-image: url(../image/header/link_icon03.png);
    background-position: 10px center;
    background-repeat: no-repeat;
}

.nav_container ul li.Hd_nav04 a{
    background-image: url(../image/header/link_icon04.png);
    background-position: 3px center;
    background-repeat: no-repeat;
}

.nav_container ul li.Hd_navResearch a{
    background-image: url(../image/header/link_icon04.png);
    background-position: 3px center;
    background-repeat: no-repeat;
}

.nav_container ul li.Hd_nav05 a{
    background-image: url(../image/header/link_icon05.png);
    background-position: 10px center;
    background-repeat: no-repeat;
}

.nav_container ul li.Hd_nav06 a{
    background-image: url(../image/header/link_icon06.png);
    background-position: 10px center;
    background-repeat: no-repeat;
}

.nav_container ul li:last-child a{background-color: #951a37; color: #fff;}

.nav_container ul li:last-child a::after{
  border-top: solid 2px #fff;
  border-right: solid 2px #fff;
}



/*---------------------------------------------------------------------------
フッター
---------------------------------------------------------------------------*/

#footer {
    width:100%;
    margin: 0 auto;
    padding-bottom: calc(120px + constant(safe-area-inset-bottom));
    padding-bottom: calc(120px + env(safe-area-inset-bottom));
    position: relative;
    z-index: 110;
    background-color: #fff;
}

.footerContents{
    margin: 0 auto;
    padding: 30px 0;
}

.footerLogoBox{
    color:#808080;
    text-align: center;
    padding: 0 15px;
}

.footerLogoBox .logo{
    width: 79px;
    margin: 0 auto 15px;
}

.footerLogoBox a:hover img{opacity: 1;}

.footerTitle{
}

.footerTitle h2{line-height: 1;}

.footerTitle img{
    max-width: 262px;
    vertical-align: middle;
}

.footerMenu{
    display: flex;
    justify-content: center;
    align-items: flex-start;
    font-size: 0.75rem;
    margin-top: 20px;
    flex-wrap: wrap;
}

.footerMenu li{
    padding: 0 7px;
    margin-bottom: 15px;
    border-right:1px solid #ccc;
    width: 33.3333%;
    box-sizing: border-box;
}

.footerMenu li:first-child{padding: 0 10px 0 0;}
.footerMenu li:nth-child(3){border-right:none;}
.footerMenu li:last-child{border-right:none;}

.footerMenu li a{
    position: relative;
    display: inline-block;
    transition: .3s;
    color: #808080;
}

.footerMenu li a::after {
    position: absolute;
    bottom: -2px;
    left: 50%;
    content: '';
    width: 100%;
    height: 1px;
    background-color: #808080;
    transition: .3s;
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
}


#footer .copyright{
    text-align: center;
    font-size: 0.85rem;
    color: #262e8b;
    padding: 20px 0px 0px 0px;
}


/*---------------------------------------------------------------------------
トップページ
---------------------------------------------------------------------------*/

/*----- titleStyle -----*/

.subTitle01{
    color: #262e8b;
    margin-bottom: 30px;
    padding-top: 40px;
    text-align: center;
    position: relative;
    z-index: 5;
}
.subTitle01::before,
.subTitle01::after{
    content: "";
    position: absolute;
    left: 0; right: 0;
    margin: auto;
}
.subTitle01::before{
    top: 0px;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background-color: #f7f5ef;
}
.subTitle01.whBack::before{
    background-color: #fff;
}
.subTitle01::after{
    top: 5px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background-color: #262e8b;
}

.subTitle01 h2{
    min-width: 150px;
    font-weight: normal;
    color: #262e8b;
    display: inline-block;
    border: 2px solid #262e8b;
    background-color: #fff;
    border-radius: 10px;
    padding: 10px 15px;
    font-size: 1.2rem;
    position: relative;
}
.subTitle01 h2::before,
.subTitle01 h2::after{
    content: "";
    position: absolute;
    z-index: -1;
}
.subTitle01 h2::before{
    top: -25px;
    left: 0; right: 0;
    margin: auto;
    width: 30px;
    height: 30px;
    border: 2px solid #262e8b;
    border-right: none;
    border-bottom: none;
    transform: rotate(45deg);
}
.subTitle01 h2::after{
    bottom: -7px;
    right: -7px;
    width: 100%;
    height: 100%;
    border: 2px solid #262e8b;
    border-radius: 10px;
    background-color: #e5ddc9;
}


/*----- 詳しく見るボタン -----*/

.topLinkBtn_bl{
    display: inline-block;
    padding: 10px 70px;
    margin-bottom: 7px;
    background-color: #5158a2;
    color: #fff;
    /* font-weight: bold; */
    border-radius: 10px;
    box-shadow: 0 6px 0 #262e8b;
    position: relative;
}

.topLinkBtn_bl::before{
    content: "→";
    position: absolute;
    left: 20px;
    top: 50%;
    transform: translateY(-50%);
    display: block;
}

.topLinkBtn_bl:hover{
    top: 2px;
    right: -1px;
    box-shadow: 0 3px 0 #262e8b;
}

/*------------------------------*/
/*----- 当院が初めての方ボタン -----*/
/*------------------------------*/

.topLinkBtn_orange{
    display: inline-block;
    padding: 10px 70px;
    background-color: #F7963A;
    color: #fff;
    /* font-weight: bold; */
    border-radius: 10px;
    box-shadow: 0 6px 0 #e4750d;
    position: relative;
    width: 50%;
    margin: 15px 0px;
    font-size: 85%;
}

.topLinkBtn_orange::before{
    content: "→";
    position: absolute;
    left: 20px;
    top: 50%;
    transform: translateY(-50%);
    display: block;
}

.topLinkBtn_orange:hover{
    top: 2px;
    right: -1px;
    box-shadow: 0 3px 0 #e4750d;
}

/*------------------------------*/
/*----- 2回目以降の方ボタン -----*/
/*------------------------------*/
.topLinkBtn_blue{
    display: inline-block;
    padding: 10px 70px;
    background-color: #5158a2;
    color: #fff;
    /* font-weight: bold; */
    border-radius: 10px;
    box-shadow: 0 6px 0 #262e8b;
    position: relative;
    margin: 7px 0px;
    width: 50%;
    font-size: 85%;
}

.topLinkBtn_blue::before{
    content: "→";
    position: absolute;
    left: 20px;
    top: 50%;
    transform: translateY(-50%);
    display: block;
}

.topLinkBtn_blue:hover{
    top: 2px;
    right: -1px;
    box-shadow: 0 3px 0 #262e8b;
}


/*----------------------------------------------------*/
/*----- 肉離れ・オスグッド・半月板損傷の専門外来はこちら -----*/
/*----------------------------------------------------*/
.osgood-bnr {
    background: #e9eaf3;
    margin-top: 4vw;
    padding: 3.5vw 4.5vw;
}
.osgood-bnr-img {
}
.osgood-bnr-text {
}
.osgood-bnr-hl {
    color: #262e8b;
    font-size: 4.6vw;
    font-weight: 700;
    line-height: 1.4;
    margin: 4vw 0;
}
.osgood-bnr-p {
    font-size: 3.8vw;
}
.osgood-bnr-link {
    text-align: center;
    margin-top: 4vw;
}
.osgood-bnr-link .topLinkBtn_bl {
    font-size: 4vw;
    display: block;
    padding: 4vw;
}

.topLinkBtn_enge{
    display: inline-block;
    padding: 10px 70px;
    background-color: #af3e58;
    color: #fff;
    /* font-weight: bold; */
    border-radius: 10px;
    box-shadow: 0 6px 0 #931F3B;
    position: relative;
    margin: 5px 0px 10px 0px;
    width: 50%;
    font-size: 85%;
}

.topLinkBtn_enge::before{
    content: "→";
    position: absolute;
    left: 20px;
    top: 50%;
    transform: translateY(-50%);
    display: block;
}

.topLinkBtn_enge:hover{
    top: 2px;
    right: -1px;
    box-shadow: 0 3px 0 #af3e58;
}


/*----- 縦文字用ライン -----*/

.top_verticalLine{text-align: center;}

.top_verticalLine p{
    box-sizing: border-box;
    padding:0px 0px 0px 0px;
    color: #262e8b;
    font-size: 1.1rem;
    position: relative;
    display: inline;
    background: linear-gradient(transparent 93%, #951a37 0%);
}


.top_verticalLine span{
}



/* fullSlideShow
--------------------------- */
.fullSlideShow {
    width: 100%;
    text-align: left;
    position: relative;
    overflow: hidden;
    z-index: 1;
}

.fullSlideShow::before{
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 90vh;
    background-image: url(../image/slider/main_img01.jpg);
    background-position: 70% 0;
    background-repeat: no-repeat;
    background-size: cover;
}


.fullSlideShow ul {
    display: none;
    top: 50%;
    left: 50%;
    width: 100%;
    position: fixed; /* absolute or fixed */
    overflow: hidden;
}
.fullSlideShow ul li {
    top: 0;
    left: 0;
    width: 100%;
    display: none;
    position: absolute;
}
.fullSlideShow ul li img {
    width: 100%;
}

.fullSlideShow ul:after {
    content: ".";
    height: 0;
    clear: both;
    display: block;
    visibility: hidden;
}
.fullSlideShow ul {
    display: inline-block;
    overflow: hidden;
}

.fullSlideShow .btnPrev,
.fullSlideShow .btnNext {
    margin-top: -25px;
    top: 50%;
    width: 50px;
    height: 50px;
    position: fixed; /* absolute or fixed */
    z-index: 105;
}
.fullSlideShow .btnPrev {
    left: 10px;
    background: transparent url(../img/btnPrev.png) no-repeat center center;
}
.fullSlideShow .btnNext {
    right: 10px;
    background: transparent url(../img/btnNext.png) no-repeat center center;
}

.pagiNation {
    bottom: 30px;
    left: 0;
    width: 100%;
    height: 15px;
    text-align: center;
    position: fixed; /* absolute or fixed */
    /*z-index: 110;*/
    display: none;
    visibility: visible; /* 非表示にする場合は「hidden」に */
}

.pagiNation a {
    margin: 0 5px;
    width: 20px;
    height: 20px;
    display: inline-block;
    overflow: hidden;
    background: #000;
}
.pagiNation a.pnActive {
    filter:alpha(opacity=100)!important;
    -moz-opacity: 1!important;
    opacity: 1!important;
}

/* fullSlideShowここまで
--------------------------- */


.topMainText{
    position: absolute;
    top: 15%;
    left: 3%;
    z-index: 101;
    font-size: 1rem;
}

.topMainText p{
    background-color: #fff;
    margin-bottom: 5px;
    padding: 5px 8px;
    display: inline-block;
    border-radius: 10px;
}

.topMVtable{
    position: absolute;
    bottom: 0px;
    left: 0;
    margin: auto;
    z-index: 101;
    width: 100%;
}

.topMVtable table{
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 0;
    border-radius: 10px 10px 0px 0px;
    width: 100%;
    overflow: hidden;
    font-size: 0.75rem;
}

.topMVtable table th{
    background-color: #872844;
    color: #fff;
    padding: 10px 0px;
    font-weight: normal;
    text-align: center;
}

.topMVtable table th.timeTitle{
    width: 25%;
    text-align: left;
}

.topMVtable table th.timeTitle img{
    width: 20px;
    margin-right: 5px;
}

.topMVtable table th:first-child,
.topMVtable table th:last-child{width: 3%}

.topMVtable table td{
    text-align: center;
    color: #872844;
    padding: 10px 0px;
    background-color: #fff;
}

.topMVtable table td{
    border-bottom: 1px solid #ccc;
}

.topMVtable table tr td:first-child,
.topMVtable table tr td:last-child{border-bottom:none;}

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

.topMVtable table td.time{
    text-align: left;
    color: #333;
}
.topNews {
    color: #951a37;
    background: rgba(255,255,255,.8);
    position: absolute;
    bottom: 33vw;
    margin-right: 4vw;
    margin-left: 4vw;
    padding: 4vw 6vw;
    z-index: 100;
}
.topNews-title {
    font-size: 4vw;
    font-weight: 700;
    text-align: center;
    margin-bottom: .5em;
}
.topNews-text {
    font-size: 3.3vw;
}
.topNews-text span {
    display: block;
    font-size: 2.3vw;
    text-indent: -1em;
    padding-top: 0.5em;
    padding-left: 1em;
}

.top_message{
    padding: 150px 0 0;
    box-sizing: border-box;
    position: relative;
}

.topMsg_Imgbox{
    text-align: center;
}

.topMsg_Imgbox p{
    margin-top: 15px;
    text-align: left;
}

.topMsg_linkBtn{
    text-align: center;
    margin: 30px 0 0;
}


.top_kodawari{
    padding: 60px 0 0;
    box-sizing: border-box;
    position: relative;
}

.topKoda_detail{
    margin-top: 30px;
}

.topKoda_detail .text{
}

.topKoda_ImgList{
    width: 100%;
	margin-top: 30px;
}

.topKoda_ImgList li{
    text-align: center;
    margin-bottom: 30px;
    padding-top: 40px;
    position: relative;
    z-index: 5;
}
.topKoda_ImgList li::before,
.topKoda_ImgList li::after{
    content: "";
    position: absolute;
    left: 0; right: 0;
    margin: auto;
}
.topKoda_ImgList li::before{
    top: 0px;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background-color: #f7f5ef;
}
.topKoda_ImgList li::after{
    top: 5px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background-color: #262e8b;
}

.topKoda_ImgDesc{
    width: 100%;
    border: 2px solid #262e8b;
    border-radius: 10px;
    background-color: #fff;
    padding: 15px;
    box-sizing: border-box;
    position: relative;
}
.topKoda_ImgDesc::before{
    content: "";
    position: absolute;
    z-index: -1;
    top: -25px;
    left: 0; right: 0;
    margin: auto;
    width: 30px;
    height: 30px;
    border: 2px solid #262e8b;
    border-right: none;
    border-bottom: none;
    transform: rotate(45deg);
}

.topKoda_ImgDesc img{
    max-width: 100%;
    margin-bottom: 15px;
}

.topKoda_ImgDesc span{
    font-weight: bold;
}

.topKoda_linkBtn{
    margin: 40px auto 0;
    text-align: center;
}

.top_help{
    padding: 60px 0px 0px 0px;
    box-sizing: border-box;
    position: relative;
}

.topHelp_flexBox{
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
    margin-right: auto;
    margin-top: 40px;
}

.topHelp_flexDesc{
    width: 48%;
    text-align: center;
    margin-bottom: 20px;
}

.topHelp_flexDesc.TH_spFlex01{order:2;}
.topHelp_flexDesc.TH_spFlex02{order:1;}
.topHelp_flexDesc.TH_spFlex03{order:4;}
.topHelp_flexDesc.TH_spFlex04{order:3;}
.topHelp_flexDesc.TH_spFlex05{order:6;}
.topHelp_flexDesc.TH_spFlex06{order:5;}
.topHelp_flexDesc.TH_spFlex07{order:8;}
.topHelp_flexDesc.TH_spFlex08{order:7;}

.topHelp_flexDesc .TH_Title01 img{max-width: 137px;}
.topHelp_flexDesc .TH_Title02 img{max-width: 134px;}
.topHelp_flexDesc .TH_Title03 img{max-width: 128px;}
.topHelp_flexDesc .TH_Title04 img{max-width: 104px;}
.topHelp_flexDesc .TH_Title05 img{max-width: 141px; margin-bottom: -10px;}
.topHelp_flexDesc .TH_Title06 img{max-width: 128px;}
.topHelp_flexDesc .TH_Title07 img{max-width: 134px;}
.topHelp_flexDesc .TH_Title08 img{max-width: 113px;}

.topHelp_flexDesc .TH_circle{
    width: 150px;
    height: 150px;
    background-color: #fff;
    border-radius: 50%;
    box-sizing: border-box;
    padding: 10px;
    margin: 0 auto;
}

.topHelp_flexDesc .TH_circleInr{
    width: 100%;
    height: 100%;
    overflow: hidden;
    position: relative;
    border: 1px solid #262e8b;
    border-radius: 50%;
    box-sizing: border-box;
}

.topHelp_flexDesc .TH_circleInr img{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
    -webkit-transform: translateY(-50%) translateX(-50%);
}


.top_access{
    margin-top: 60px;
    padding: 20px;
    background-color: #fff;
    box-sizing: border-box;
}

.topAcc_textBox{
    text-align: center;
    box-sizing: border-box;
    padding: 0px 0px;
}

.topAcc_textBox .logo{margin-bottom: 15px;}
.topAcc_textBox .logo img{width: 83px;}

.topAcc_textBox h3{margin-bottom: 30px;}
.topAcc_textBox h3 img{width: 353px;}

.topAcc_textBox .add{
    text-align: left;
    margin: 0px 0px 30px 0px;
    font-size: 1rem;
}

.topAcc_textBox .tel img{max-width: 337px; width: 100%;}

.topAcc_textBox .acText{
    color: #951a37;
    font-size: 1.15rem;
    margin-top: 10px;
}

.topAcc_textBox .acText span{
    font-size: 2rem;
}

.topAcc_linkBtn{margin: 20px auto 30px;}

.topAcc_GMap{
}

.topAcc_GMap iframe{
    width: 100%;
    height: 230px;
}


.top_info{
    margin-top: 60px;
    box-sizing: border-box;
    position: relative;
}

.topInfoBox{
    border-top: 1px solid #262e8b;
}

.topInfoDesc{
    border-bottom: 1px solid #262e8b;
}

.topInfo_DateTitle{
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    flex-wrap: nowrap;
    color: #262e8b;
    position: relative;
    padding: 15px 0px 15px 0px;
}

.topInfo_DateTitle:hover{cursor: pointer;}

.topInfo_DateTitle dt{
    width: 26%;
}

.topInfo_DateTitle dd{
    width: 74%;
    box-sizing: border-box;
    vertical-align: middle;
    padding-right: 30px;
}

.topInfo_DateTitle dd.new-icon::after{
    content:"NEW";
    font-size: 0.5rem;
    background-color: #5158a2;
    color: #fff;
    padding: 2px 5px;
    margin: 0px 0px 0px 5px;
    border-radius: 5px;
    box-shadow: 0 3px 0 #262e8b;
    position: relative;
    top:-3px;
}

.topInfo_ToggleBtn{
    display: block;
    width: 20px;
    height: 20px;
    background: url(../image/top/toggle01.png) center center no-repeat;
    background-size: 20px auto;
    position: absolute;
    right: 0px;
    top: 30%;
}

.topInfo_DateTitle.active .topInfo_ToggleBtn{
    background: url(../image/top/toggle02.png) center center no-repeat;
    background-size: 15px auto;
}

.topInfo_Text{
    padding: 0px 0px 0px 0px;
    margin: 0px 0px 25px 0px;
}


.top_timeTable{
    margin: 60px 0px 0px 0px;
    padding: 15px;
    background-color: #fff;
    box-sizing: border-box;
    position: relative;
}

.topTim_Hours{
    width:100%;
}

.top_calendarWrap{
    width: 100%;
    background-color: #e9eaf3;
    padding: 25px 15px;
    box-sizing: border-box;
    position: relative;
    z-index: 130;
}

.top_calendarBox{
    width: 100%;
    margin: 0 auto;
    background-color: #fff;
}

.top_calendarCautionBox{
    width: 100%;
    background-color: #5158a2;
    padding: 20px 15px;
    box-sizing: border-box;
    text-align: center;
}

.top_calendarCautionBox p{
    font-size: 1.0rem;
    color: #fff;
}
.top_calendarCautionBox p span{
    font-size: 1.2rem;
    font-weight: bold;
    position: relative;
}
.top_calendarCautionBox p span::after{
    content: "";
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: #fff;
}
.con_accessLinkBox_text {
    font-size: 3.4vw;
    font-weight: 700;
    text-align: left;
    text-indent: -2em;
    padding-left: 2em;
    margin: 0 1em;
}

/*　24時間可能なWEB予約　（自費診療の方(7,000円/1回)）　*/
.top_calendarCautionBox_2{
    width: 100%;
    background-color: #941D39;
    padding: 20px 15px;
    box-sizing: border-box;
    text-align: center;
}

.top_calendarCautionBox_2 p{
    font-size: 1.0rem;
    color: #fff;
}
.top_calendarCautionBox_2 p span{
    font-size: 1.2rem;
    font-weight: bold;
    position: relative;
}
.top_calendarCautionBox_2 p span::after{
    content: "";
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: #fff;
}



.top_calBtext{
    margin-bottom: 10px;
    padding: 10px 10px;
    background-color: #fff;
    text-align: center;
}

.top_calBtext strong{
    color: #951a37;
    font-weight: bold;
}

.top_supplement{
    margin: 30px auto;
    padding: 20px 20px;
    width: 100%;
    box-sizing: border-box;
    background-color: #ffffff;
    text-align: left;
}
.top_supptext{
    margin-top: 10px;
    margin-bottom: 10px;
    font-size: 1rem;
}
.top_supptext_small{
    font-size: 0.8rem;
}



/*----- キャラクター調整用 -----*/

.top_chara01{margin: 30px 0 30px; text-align: center;}
.top_chara01 img{max-width: 206px;}

.top_chara02{float: left;}
.top_chara02 img{width: 100px; margin-right: 15px;}

.top_chara03{margin-bottom: 40px;}
.top_chara03 img{width: 146px;}

.top_chara04{margin-top: 30px; margin-bottom: 20px;}
.top_chara04 img{width: 85px;}

.top_chara05{margin-bottom: 50px;}
.top_chara05 img{width: 82px;}

.top_chara05sp{margin-top: 30px; margin-bottom: 20px;}
.top_chara05sp img{width: 82px;}

.top_chara06{margin-top: 40px;}
.top_chara06 img{width: 79px;}

.top_chara07{position: absolute; top: -10px; right: 0;}
.top_chara07 img{width: 79px;}

.top_chara08{position: absolute; top: 0px; left: 10px;}
.top_chara08 img{width: 71px;}

.top_chara09{margin-top: 0px; margin-bottom: 40px;}
.top_chara09 img{width: 78px;}

.top_chara09sp{margin-top: 30px;}
.top_chara09sp img{width: 82px;}

.top_chara10{margin-top: 10px; margin-bottom: 40px;}
.top_chara10 img{width: 78px;}

/*----- キャラクター調整用ここまで -----*/



/*---------------------------------------------------------------------------
下層　共通CSS
---------------------------------------------------------------------------*/

/*----- 下層メインイメージ -----*/
.caMainImgBox{
    width: 100%;
    height: 25vh;
    margin-top: 70px;
    background-repeat: no-repeat;
    background-size: cover;
    display: flex;
    justify-content: center;
    align-items: center;
}

.caMainImgBox h2{
    background-image: linear-gradient(to right, rgba(255,255,255,0), #fff 40%, #fff 60%, rgba(255,255,255,0));
    display: inline-block;
    padding: 5px 20px;
    color: #262e8b;
    font-size: 1.25rem;
    letter-spacing: 0.1rem;
    font-weight: bold;
    text-align: center;
}

.caMainImgBox h2.fontMPlus{font-weight: normal;}


/*----- 下層コンテンツ枠 -----*/
.caContentsWrap{
    padding-top: 100px;
}

.caContentsBox{
    background-color: #fff;
    padding: 50px 15px 100px;
    box-sizing: border-box;
    position: relative;
}
.caContentsBox::before,
.caContentsBox::after{
    content: "";
    position: absolute;
    top: 0;
    width: 20px;
    height: 20px;
    border: 5px solid #b3b6d6;
}
.caContentsBox::before{
    left: 0;
    border-right: none;
    border-bottom: none;
}
.caContentsBox::after{
    right: 0;
    border-left: none;
    border-bottom: none;
}

/*----- 下層タイトル -----*/
.caTitleBox{
    text-align: center;
    margin-top: -75px;
    position: relative;
    z-index: 5;
}
.caTitleBox::before,
.caTitleBox::after{
    content: "";
    position: absolute;
    left: 0; right: 0;
    margin: auto;
}
.caTitleBox::before{
    top: -45px;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background-color: #f7f5ef;
}
.caTitleBox::after{
    top: -40px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background-color: #262e8b;
}

.caTitleBox h2{
    min-width: 150px;
    font-weight: normal;
    color: #262e8b;
    display: inline-block;
    border: 2px solid #262e8b;
    background-color: #fff;
    border-radius: 10px;
    padding: 10px 15px;
    font-size: 1.2rem;
    letter-spacing: 0.2rem;
    position: relative;
}
.caTitleBox h2::before,
.caTitleBox h2::after{
    content: "";
    position: absolute;
    z-index: -1;
}
.caTitleBox h2::before{
    top: -30px;
    left: 0; right: 0;
    margin: auto;
    width: 40px;
    height: 40px;
    border: 2px solid #262e8b;
    border-right: none;
    border-bottom: none;
    transform: rotate(45deg);
}
.caTitleBox h2::after{
    bottom: -7px;
    right: -7px;
    width: 100%;
    height: 100%;
    border: 2px solid #262e8b;
    border-radius: 10px;
    background-color: #e5ddc9;
}

/*----- 下層メインテキスト -----*/
.caDescBox{
    text-align: center;
    line-height: 1.6rem;
    margin-top: 30px;
    margin-bottom: 30px;
}


/*---------------------------------------------------------------------------
院長あいさつ
---------------------------------------------------------------------------*/

.About.caMainImgBox{
    background-image: url(../about/image/mainImg.jpg);
    background-position: 50% 20%;
}

.about_doctorBox{
    display: flex; /* フレックスボックスを使用 */
    justify-content: center; /* 水平方向に中央揃え */
    align-items: center; /* 垂直方向に中央揃え */
}

img {
    max-width: 100%; /* 画像の幅を親要素に合わせる */
    height: auto; /* 高さを自動調整 */
}

.about_docImgBox{
    width: 100%;
    margin-top: 30px;
}

.about_docTextBox{
    width: 100%;
}

.about_docHD{
    margin-top: 30px;
    margin-bottom: 30px;
    color: #262e8b;
    line-height: 2.4rem;
    font-size: 1.2rem;
}

.about_docHD span{
    border-bottom: 2px solid #951a37;
    padding-bottom: 5px;
}

.about_docNameBox{
    margin-top: 30px;
    text-align: right;
}

.about_docNameBox p{
    font-size: 1.4rem;
}

.about_docNameBox .JP ruby{
    font-size: 1.8rem;
    margin-left: 15px;
}

.about_docNameBox .EN{
    margin-top: 5px;
}

.about_docNameBox .EN span{
    border-top: 2px solid #951a37;
    color: #951a37;
    padding-top: 10px;
    font-size: 0.8rem;
}

.about_flexBox{
    display: flex;
    flex-direction: column;
    margin-top: 120px;
}

.about_flexBox .caContentsBox{
    width: 100%;
    margin-bottom: 100px;
}
.about_flexBox .caContentsBox:nth-of-type(2){
    margin-bottom: 0;
}

.aboutSubTitle h2{
    width: 150px;
    min-width: inherit;
    font-size: 1.4rem;
    padding: 7px 15px;
}

.about_charaBox01{
    position: absolute;
    top: -50px;
    left: 30px;
    width: 48px;
}

.about_charaBox02{
    position: absolute;
    top: -50px;
    right: 0px;
    width: 71px;
}

.about_historyBox{
    margin-top: 20px;
}

.about_historyBox dl{
    display: flex;
    padding: 15px 0;
    border-bottom: 2px dashed #ccc;
}
.about_historyBox dl:last-of-type{
    padding-bottom: 0;
    border-bottom: none;
}

.about_historyBox dl dt{
    width: 25%;
    padding-right: 10px;
    color: #262e8b;
    box-sizing: border-box;
}

.about_historyBox dl dd{
    width: 75%;
}

.about_otherBox{
    margin-top: 25px;
}

.about_otherBox p{
    font-size: 1.2rem;
    color: #262e8b;
    margin-bottom: 10px;
}

.about_otherBox ul{
    margin-bottom: 30px;
    margin-left: 15px;
    padding-left: 15px;
    border-left: 2px solid #5158a2;
    display: flex;
    flex-wrap: wrap;
}
.about_otherBox ul:last-of-type{
    margin-bottom: 0;
}

.about_otherBox ul li{
    width: 100%;
    display: flex;
    margin-bottom: 10px;
}
/*
.about_otherBox ul:last-of-type li{
    width: 50%;
}

.about_otherBox ul li:last-child{
    margin-bottom: 0;
}
*/

.main-category {
    list-style-type: none; /* 大カテゴリのマーカーを消す */
    padding: 10px; /* 内側の余白を追加 */
    background-color: #d9e9fc; /* <ul>全体の背景色を設定 */
    border-radius: 10px; /* 角を丸くする */
}

.category-item {
    font-weight: bold; /* 大カテゴリを太字にする */
    margin: 8px 0; /* 大カテゴリの間隔 */
    position: relative; /* 擬似要素の位置を相対的にする */
    font-size: 16px; /* デフォルトのフォントサイズ */
    color: rgb(0, 4, 128); /* デフォルトのフォントカラー */
    padding-left: 30px; /* チェックマークのための余白を追加 */
}

.category-item::before {
    content: '✔'; /* チェックマークを表示 */
    position: absolute; /* 絶対位置 */
    left: 10px; /* 左に配置 */
    color: rgb(0, 4, 128); /* チェックマークの色 */
    font-size: 16px; /* チェックマークのサイズ */
}

.sub-category {
    list-style-type: none; /* アル中カテゴリのマーカーを消す */
    padding-left: 20px; /* アル中カテゴリのインデント */
}

.sub-category-item {
    font-size: 14px; /* 中カテゴリのデフォルトのフォントサイズ */
    color: #272727; /* 中カテゴリのデフォルトのフォントカラー */
    margin: 5px 0; /* アル中カテゴリの間隔 */
}



/*---------------------------------------------------------------------------
院内紹介
---------------------------------------------------------------------------*/

.Info.caMainImgBox{
    background-image: url(../info/image/mainImg.jpg);
    background-position: 50% 60%;
}

.info_listBox{
    display: flex;
    flex-direction: column;
    margin-top: 50px;
}

.info_listInner{
    width: 100%;
    margin-bottom: 80px;
}

.info_listInner:last-of-type{
    margin-bottom: 0;
}

.info_titleBox{
    text-align: center;
    margin-bottom: -10px;
    position: relative;
    z-index: 5;
}

.info_titleBox::before,
.info_titleBox::after{
    content: "";
    position: absolute;
    left: 0; right: 0;
    margin: auto;
}
.info_titleBox::before{
    top: -35px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background-color: #fff;
}
.info_titleBox::after{
    top: -30px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: #262e8b;
}

.info_titleBox p{
    min-width: 110px;
    font-weight: normal;
    color: #262e8b;
    display: inline-block;
    border: 2px solid #262e8b;
    background-color: #fff;
    border-radius: 10px;
    padding: 7px 15px;
    font-size: 1.0rem;
    position: relative;
}
.info_titleBox p::before,
.info_titleBox p::after{
    content: "";
    position: absolute;
    z-index: -1;
}
.info_titleBox p::before{
    top: -25px;
    left: 0; right: 0;
    margin: auto;
    width: 30px;
    height: 30px;
    border: 2px solid #262e8b;
    border-right: none;
    border-bottom: none;
    transform: rotate(45deg);
}
.info_titleBox p::after{
    bottom: -7px;
    right: -7px;
    width: 100%;
    height: 100%;
    border: 2px solid #262e8b;
    border-radius: 10px;
    background-color: #e5ddc9;
}

.info_imgBox{
    margin-bottom: 15px;
}

.info_textBox{
    position: relative;
    padding-left: 85px;
}

.info_charaBox{
    position: absolute;
    bottom: 0;
    left: 0;
}

.info_charaBox.chara01{
    width: 75px;
}
.info_charaBox.chara02{
    width: 75px;
}
.info_charaBox.chara03{
    width: 70px;
}
.info_charaBox.chara04{
    width: 75px;
}
.info_charaBox.chara05{
    width: 75px;
}
.info_charaBox.chara06{
    width: 50px;
    left: 10px;
}



/*---------------------------------------------------------------------------
症状のご相談
---------------------------------------------------------------------------*/

.caseWrap{
    padding-top: 50px;
}

.case_naviBox{
    margin-bottom: 120px;
    position: relative;
}
.case_naviBox::after{
    content: "";
    position: absolute;
    bottom: -7px;
    right: -7px;
    width: 100%;
    height: 100%;
    border: 2px solid #262e8b;
    border-radius: 10px;
    background-color: #5158a2;
    box-sizing: border-box;
    z-index: -1;
}

.case_naviBox ul{
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    background-color: #fff;
    border: 2px solid #262e8b;
    border-radius: 10px;
    box-sizing: border-box;
    overflow: hidden;
}

.case_naviBox ul li{
    width: 50%;
    border-right: 2px solid #262e8b;
    border-bottom: 2px solid #262e8b;
    box-sizing: border-box;
}
.case_naviBox ul li:nth-child(2n+2){
    border-right: none;
}
/* .case_naviBox ul li:nth-last-child(-n+2){
    border-bottom: none;
} */
.case_naviBox ul li:last-child {
    border-bottom: none;
}

.case_naviBox ul li a{
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100%;
    padding: 10px;
    box-sizing: border-box;
    color: #262e8b;
    text-align: center;
    font-size: 1.0rem;
    transition: 0.2s ease;
    line-height: 1.4rem;
}

.case_naviBox ul li a.active,
.case_naviBox ul li a:hover{
    background-color: #888cbf;
    color: #fff;
}

.Case.caDescBox{
    margin-bottom: 0;
}

.case_menuBox{
    background-color: #fff;
    margin: 50px 0;
    padding-bottom: 30px;
}

.case_menuBox p{
    color: #fff;
    text-align: center;
    letter-spacing: 0.2rem;
    font-size: 1.2rem;
    background-color: #951a37;
    padding: 10px;
    margin-bottom: 30px;
}

.case_menuBox ul{
    margin: 0 15px;
    display: flex;
    flex-direction: column;
    border: 1px solid #951a37;
}

.case_menuBox ul li{
    width: 100%;
    border-bottom: 1px solid #951a37;
    box-sizing: border-box;
}
.case_menuBox ul li:last-child{
    border-bottom: none;
}

.case_menuBox ul li a{
    display: flex;
    padding: 15px 25px 15px 15px;
    position: relative;
    z-index: 1;
    transition: 0.3s ease;
}

.case_menuBox ul li a::after{
    content: "";
    position: absolute;
}

.case_menuBox ul li a::after{
    top: 50%;
    right: 15px;
    transform: translateY(-50%) rotate(45deg);
    width: 7px;
    height: 7px;
    border: 2px solid #951a37;
    border-bottom: none;
    border-left: none;
    transition: 0.3s ease;
}

.case_menuBox ul li a span{
    color: #951a37;
    transition: 0.3s ease;
}

.case_menuBox ul li a:hover,
.case_menuBox ul li a:hover span{
    color: #fff;
}

.case_menuBox ul li a:hover{
    background-color: #951a37;
}

.case_menuBox ul li a:hover::after{
    border-color: #fff;
}

.case_contentsWrap{
    background-color: #fff;
}

.case_contentsBox{
    padding-top: 20px;
}

#anc_menu01.case_contentsBox{
    position: relative;
}
#anc_menu01.case_contentsBox::before{
    content: "";
    position: absolute;
    top: 0;
    left: 0; right: 0;
    margin: auto;
    width: 100%;
    height: 20px;
    background-color: #f7f5ef;
}

.case_subTitleBox{
    background-color: #262e8b;
    padding: 10px 15px;
    display: flex;
    align-items: center;
}

.case_subTitleBox p,
.case_subTitleBox h3{
    color: #fff;
    font-weight: normal;
    font-size: 1.2rem;
    /* letter-spacing: 0.2rem; */
}

.case_subTitleBox h3{
    width: calc(100% - (50px + 15px));
}

.case_number{
    width: 50px;
    height: 50px;
    line-height: 50px;
    border-radius: 50%;
    letter-spacing: normal !important;
    background-color: #5158a2;
    border: 3px solid #262e8b;
    text-align: center;
    margin-top: -23px;
    /* margin-bottom: -13px; */
    margin-right: 15px;
    position: relative;
}
.case_number::after{
    content: "";
    position: absolute;
    bottom: 5px;
    right: 0;
    width: 0;
    height: 0;
    transform: rotate(-55deg);
    border-style: solid;
    border-width: 20px 5px 0 5px;
    border-color: #5157a2 transparent transparent transparent;
}

.case_number span{
    font-size: 1.4rem;
}

.case_contentsInner{
    padding: 15px 15px 30px;
}

.case_contentsInner h4{
    font-weight: normal;
}

.case_contentsInner p{
    font-size: 1.0rem;
    line-height: 1.8rem;
}

.case_flexBox{
    display: flex;
    flex-direction: column;
}

.case_textBox{
    width: 100%;
}

.case_imgBox{
    width: 100%;
    margin-top: 15px;
    margin-bottom: 15px;
}

.case_contentsInner .blueText{
    color: #262e8b;
}

.case_contentsInner ul li{
    display: flex;
}

.case_innerLinkBox{
    margin-bottom: 30px;
    display: flex;
    flex-direction: column;
}

.case_innerLinkBox a{
    align-self: center;
    margin-top: 15px;
}

.case_boxEnd{
    margin-bottom: 0 !important;
}

.case_linkBox01{
    text-align: center;
    position: relative;
    z-index: 5;
}

.case_linkBtx{
    width: 80%;
    display: inline-block;
    padding: 15px 30px 15px 50px;
    background-color: #5158a2;
    border: 2px solid #262e8b;
    color: #fff;
    border-radius: 10px;
    position: relative;
    margin-bottom: 70px;
    box-sizing: border-box;
    text-align: left;
}
.case_linkBtx::before{
    content: "";
    position: absolute;
    bottom: -7px;
    right: -7px;
    width: 100%;
    height: 100%;
    border: 2px solid #262e8b;
    border-radius: 10px;
    background-color: #e5ddc9;
    z-index: -1;
}
.case_linkBtx::after{
    content: "→";
    position: absolute;
    left: 20px;
    top: 20%;
    display: block;
}

.case_linkCharacter{
    position: absolute;
    bottom: 0;
    right: 20px;
    width: 93px;
    z-index: 5;
}
.case_linkCharacter img{
    vertical-align: bottom;
}

.case_linkBtx:hover{
    transform: translate(7px, 7px);
    background-color: #888cbf;
}
.case_linkBtx:hover::before{
    display: none;
}


/*---------- ゆらし紹介部分 ----------*/
#case_yurashiBox{
    width: auto;
    margin: 0 auto;
    background-color: #e9eaf3;
    padding: 70px 0 50px;
}

.case_yurashiTitle{
    margin-top: 0;
    margin-bottom: 50px;
}
.case_yurashiTitle::before{
    background-color: #e9eaf3;
}

#case_yurashiInner{
    display: flex;
    flex-direction: column;
}

.case_yurashiTextBox{
    width: 100%;
    margin-right: 50px;
}

.case_yurashiTextBox p {
    line-height: 2rem;
}
.case_yurashiTextBox p + p {
    margin-top: 1.5em;
}
.case_yurashiTextBox p a {
    text-decoration: underline;
}

.case_yurashiTextBox h3{
    display: block;
    font-size: 1.4rem;
    color: #262e8b;
    margin-bottom: 15px;
}

.case_yurashiLinkBox{
    margin-top: 30px;
    text-align: center;
}

.case_yurashiLinkBox a{
    width: 100%;
    padding: 15px 30px 15px 50px;
    box-sizing: border-box;
    text-align: left;
}
.case_yurashiLinkBox a::before{
    top: 21%;
    transform: translateY(0);
}

.case_yurashiImgBox{
    width: 100%;
    position: relative;
    margin-top: 70px;
}

.case_yurashiCharaBox{
    position: absolute;
    top: -61px;
    left: 0; right: 0;
    margin: auto;
    width: 110px;
}


/*---------- ゆらし外来診療時間 ----------*/
#case_yurashiTimeScheduleWrap{
    width: auto;
    margin: 0 auto;
    background-color: #fff;
    padding: 70px 0 50px;
}

.case_yurashiTimeScheBox{
    display: flex;
    flex-direction: column;
}

#case_yurashiTimeScheTextWrap{
    width: 100%;
    margin-bottom: 30px;
}

.case_yurashiSubTitle{
    margin-top: 0;
    margin-bottom: 25px;
}
.case_yurashiSubTitle::before{
    background-color: #fff;
}

.case_yurashiSubTitle h2{
    font-size: 1.2rem;
}

#case_yurashiTimeScheTextBox .conBox{
	border: 5px double #262e8b;
	padding: 10px 20px;
	margin-top: 20px;
	text-align: center;
}

#case_yurashiTimeScheTextBox .conBox span{font-weight: bold; pointer-events: none;}

.case_yurashiTimeSche{
    width: 100%;
}

.case_yurashiTimeTable{
    border-radius: 10px;
    overflow: hidden;
}


/*---------- 下部リンク部分 ----------*/
.case_ftLinkWrap{
    width: auto;
    margin: 0 auto;
    background-color: #951a37;
}

.case_ftLinkBox{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 30px 0;
}

.case_ftLinkBox p{
    color: #fff;
    font-size: 1.2rem;
    margin-bottom: 15px;
}

.case_ftLinkBox .case_ftLinkCaution{
    display: block;
    width: 100%;
    font-size: 1.0rem;
    text-align: center;
    margin-top: 15px;
    margin-bottom: 0;
}

.case_ftLinkBtn{
    background-color: #fff;
    color: #951a37;
    box-shadow: 0 6px 0 #580c20;
    font-weight: bold;
    font-size: 1.2rem;
}
.case_ftLinkBtn::before{
    top: 50%;
    transform: translateY(-50%);
}

.case_ftLinkBtn:hover{
    box-shadow: 0 3px 0 #580c20;
}


/*---------- 肉離れ ----------*/
.case_Nikubanare.caMainImgBox{
    background-image: url(../case/nikubanare/image/mainImg.jpg);
    background-position: 50% 50%;
}

/*---------- オスグッド ----------*/
.case_Osgood.caMainImgBox{
    background-image: url(../case/osgood/image/mainImg.jpg);
    background-position: 50% 50%;
}

/*---------- 半月板 ----------*/
.case_Hangetsuban.caMainImgBox{
    background-image: url(../case/hangetsuban/image/mainImg.jpg);
    background-position: 50% 50%;
}

/*---------- 骨粗鬆症 ----------*/
.case_Kotsuso.caMainImgBox{
    background-image: url(../case/kotsuso/image/mainImg.jpg);
    background-position: 50% 50%;
}

/*---------- 腰椎椎間板ヘルニア ----------*/
.case_Hernia.caMainImgBox{
    background-image: url(../case/hernia/image/mainImg.jpg);
    background-position: 50% 90%;
}

/*---------- 坐骨神経痛 ----------*/
.case_Zakotsu.caMainImgBox{
    background-image: url(../case/zakotsu/image/mainImg.jpg);
    background-position: 50% 50%;
}

.zakotsu_subMenuBox{
    /* display: flex; */
    margin-left: 40px;
}

.zakotsu_subMenuBox a{
    padding: 10px 25px !important;
    box-sizing: border-box;
    font-size: 0.85rem;
}

.zakotsu_subMenuBox a::after{
    width: 5px !important;
    height: 5px !important;
    right: 15px !important;
}

.zakotsu_subMenuBox a::before{
    content: "";
    position: absolute;
    top: 50%;
    left: 10px;
    transform: translateY(-50%);
    width: 7px;
    height: 7px;
    border: 1px solid #333;
    transition: 0.3s ease;
}

.zakotsu_subMenuBox a:hover::before{
    border-color: #fff;
}

/*---------- 腰痛 ----------*/
.case_Youtsuu.caMainImgBox{
    background-image: url(../case/youtsuu/image/mainImg.jpg);
    background-position: 50% 70%;
}

/*---------- 膝痛 ----------*/
.case_Hiza.caMainImgBox{
    background-image: url(../case/hiza/image/mainImg.jpg);
    background-position: 50% 80%;
}



/*---------------------------------------------------------------------------
コラム
---------------------------------------------------------------------------*/
.columnWrap{
    width: auto;
    margin: 0 auto;
    background-color: #e9eaf3;
    padding: 70px 0 50px;
}

.column_titleBox{
    margin-top: 0;
    margin-bottom: 30px;
}
.column_titleBox::before{
    background-color: #e9eaf3;
}

.column_contentsBox{
    display: flex;
    flex-direction: column;
}

.column_subTitle{
    width: 100%;
    font-size: 1.4rem;
    font-weight: bold;
    color: #262e8b;
    text-align: center;
    margin-bottom: 30px;
    font-weight: normal;
}

.column_textBox{
    width: 100%;
    margin-right: 50px;
}

.column_textBox p{
    line-height: 1.4rem;
}

.column_textBox p span{
    display: block;
    font-size: 1.0rem;
    font-weight: bold;
    color: #262e8b;
    margin-bottom: 15px;
}

.column_linkBox{
    margin-top: 30px;
    text-align: center;
}

.column_linkBox a{
    padding: 15px 30px 15px 50px;
    box-sizing: border-box;
    text-align: left;
}

.column_imgBox{
    width: 100%;
    position: relative;
    margin-top: 70px;
}

.column_charaBox{
    position: absolute;
    top: -61px;
    left: 0; right: 0;
    margin: auto;
    width: 110px;
}



/*---------------------------------------------------------------------------
特集
---------------------------------------------------------------------------*/

.Special.caMainImgBox{
    background-image: url(../special/image/mainImg.jpg);
    background-position: 50% 20%;
}

.Special.caDescBox{
    font-size: 1.1rem;
    line-height: 1.8rem;
    font-weight: bold;
    color: #262e8b;
    text-align: left;
    margin-bottom: 50px;
}

.special_profBox{
    display: flex;
    flex-direction: column;
    margin-bottom: 80px;
}

.special_profText{
    width: 100%;
    line-height: 1.7rem;
    margin-bottom: 30px;
}

.special_profText p span{
    display: block;
    text-align: center;
    font-size: 1.2rem;
    color: #262e8b;
    padding-bottom: 10px;
    margin-bottom: 10px;
    border-bottom: 2px solid #951a37;
}

.special_profText ul{
    margin-top: 15px;
}

.special_profText ul li{
    position: relative;
    padding-left: 20px;
    margin-bottom: 5px;
}
.special_profText ul li::before{
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%) rotate(45deg);
    width: 10px;
    height: 10px;
    border: 1px solid #333;
}

.special_profImg{
    width: 100%;
}

.special_talkInner{
    margin-bottom: 30px;
    display: flex;
    align-items: flex-start;
    line-height: 1.7rem;
}

.special_talkInner .talk_red{
    color: #951a37;
}
.special_talkInner .talk_blue{
    color: #262e8b;
}

.special_talkInner dt{
    width: 70px;
    margin-right: 20px;
}

.special_talkInner dd{
    width: calc(100% - (70px + 20px));
}

.special_talkInner.talk_flexStart{
    align-items: flex-start;
}

.special_talkFlexBox{
    display: flex;
    flex-direction: column;
    margin-bottom: 50px;
}

.special_talkTextBox{
    width: 100%;
}

.special_talkImgBox01{
    width: 100%;
}

.special_talkImgBox02{
    width: 100%;
    margin-bottom: 15px;
}
.special_talkImgBox02:nth-of-type(2){
    margin-bottom: 0;
}

.special_talkEnd:nth-of-type(3){
    margin-bottom: 0;
}

#special_ftLinkWrap{
    width: auto;
    margin: 0 auto;
    background-color: #951a37;
    padding-top: 5px;
}

#special_ftLinkBox{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    padding: 30px 0;
}

#special_ftLinkBox p{
    color: #fff;
    font-size: 1.0rem;
    margin-bottom: 15px;
}

.special_ftLinkBtn{
    background-color: #fff;
    color: #951a37;
    box-shadow: 0 6px 0 #580c20;
    font-weight: bold;
    font-size: 1.2rem;
}
.special_ftLinkBtn::before{
    top: 50%;
    transform: translateY(-50%);
}

.special_ftLinkBtn:hover{
    box-shadow: 0 3px 0 #580c20;
}




/*---------------------------------------------------------------------------
アクセス
---------------------------------------------------------------------------*/

.Access.caMainImgBox{
    background-image: url(../access/image/mainImg.jpg);
    background-position: 50% 20%;
}

.acc_mapBox{
    position:relative;
    width:100%;
    height:100%;
    padding-top:75%;
    margin-bottom: 30px;
}
.acc_mapBox iframe{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
}

.acc_mapDescBox{
    display: flex;
    flex-direction: column;
    align-items: center;
    border: 1px solid #262e8b;
    padding: 15px 10px;
    margin-bottom: 50px;
}

.acc_mapInner{
    width: 100%;
    border-bottom: 1px solid #262e8b;
    display: flex;
    justify-content: center;
    align-items: center;
    padding-bottom: 15px;
}
.acc_mapInner:last-of-type{
    border-bottom: none;
    padding-top: 15px;
    padding-bottom: 0;
}

.acc_mapIcon{
    width: 37px;
    margin-right: 15px;
}

.acc_mapInner p{
    color: #262e8b;
}

.acc_telIcon{
    width: 23px;
    margin-right: 15px;
}

.acc_telNumber{
    width: 220px;
}

.acc_routeBox{
    margin-bottom: 50px;
}

.acc_routeBox:last-of-type{
    margin-bottom: 0;
}

.acc_routeTitle{
    margin-bottom: 15px;
    text-align: center;
}

.acc_routeTitle .acc_trainIcon{
    width: 31px;
    margin-bottom: 10px;
}
.acc_routeTitle .acc_busIcon{
    width: 33px;
    margin-bottom: 10px;
}

.acc_routeTitle h3{
    font-weight: normal;
    font-size: 1.2rem;
    color: #262e8b;
}

.acc_routeText.acc_trainList ul{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.acc_routeText.acc_trainList ul li{
    margin-right: 0px;
}
.acc_routeText.acc_trainList ul li:last-child{
    margin-right: 0px;
}

.acc_routeText.acc_busList{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.acc_routeText.acc_busList ul:first-of-type{
    margin-left: 0px;
    margin-right: 0px;
}

.acc_routeText.acc_busList ul li{
    margin-bottom: 10px;
}

.acc_routeText ul li{
    display: flex;
}

.acc_routeFlowBox{
    margin: 50px 15px 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    position: static;
}

.acc_routeFlowInner{
    width: 100%;
    margin-bottom: 0px;
}

.acc_routeImgBox{
    margin-bottom: 10px;
}

.acc_routeTextBox p{
    display: flex;
}

.acc_routeArrBox{
    position: static;
    width: 51px;
    margin: 0 auto;
    padding: 20px 0;
}



/*---------------------------------------------------------------------------
ご予約
---------------------------------------------------------------------------*/

.Contact.caMainImgBox{
    background-image: url(../contact/image/mainImg.jpg);
    background-position: 50% 20%;
}

.contact.caDescBox h3{
    color: #262e8b;
    font-size: 1.2rem;
    margin-bottom: 30px;
}

.contact.caDescBox p{
    width: 90%;
    margin: 0 auto;
}

.con_contentsBox{
    display: flex;
    flex-direction: column;
    margin-bottom: 0;
}
.con_contentsBox:last-of-type{
    flex-direction: column-reverse;
}

.con_timeScheduleBox{
    width: 100%;
    margin-bottom: 80px;
}

.con_webLinkBox{
    width: 100%;
    text-align: center;
    background-color: #ebecf5;
    border-radius: 10px;
    padding:25px 15px 20px;
    box-sizing: border-box;
    position: relative;
    margin-bottom: 30px;
}

.con_webLinkBox p{
    font-size: 1.2rem;
    font-weight: bold;
    color: #262e8b;
}

.con_iconBox{
    position: absolute;
    top: -70px;
    left: 0; right: 0;
    margin: auto;
    width: 92px;
}

.con_accessBox{
    width: 100%;
    text-align: center;
}

.con_accessBox p{
    color: #262e8b;
    margin-bottom: 15px;
}

.con_accessMapBox{
    position:relative;
    width:100%;
    height:0;
    padding-top:75%;
    margin-bottom: 15px;
}
.con_accessMapBox iframe{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
}

.con_calendarBox{
    width: 100%;
    margin-bottom: 30px;
}

.con_calendarText{
    background-color: #5158a2;
    text-align: center;
    padding: 15px;
}

.con_calendarText p{
    color: #fff;
    font-size: 1.0rem;
}

.con_calendarText p span{
    font-size: 1.2rem;
    font-weight: bold;
    position: relative;
}
.con_calendarText p span::after{
    content: "";
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: #fff;
}
.calendarwaku_hoken {margin: auto;text-align: center; border: solid #B3B7D5 2px;}

/*自費診療の方(7,000円/1回)*/
.con_calendarText_2{
    background-color: #931F3B;
    text-align: center;
    padding: 15px;
}

.con_calendarText_2 p{
    color: #fff;
    font-size: 1.0rem;
}

.con_calendarText_2 p span{
    font-size: 1.2rem;
    font-weight: bold;
    position: relative;
}
.con_calendarText_2 p span::after{
    content: "";
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: #fff;
}
.calendarwaku_jippi {margin: auto;text-align: center; border: solid #ca9da7 2px;}



.con_calBtext{
    margin-top: 10px;
    margin-bottom: 10px;
    padding: 10px 10px;
    background-color: #fff;
    text-align: center;
}

.con_calBtext strong{
    color: #951a37;
    font-weight: bold;
}



/*TOP予約注釈追加*/
.reservation_info{
    position: absolute;
    z-index: 1000;
    width: auto;
    z-index: 130;
}

.reservation_info p{
    overflow: hidden;
    font-size: 0.75rem;
	margin: 1.25vw 8.125vw 0 5vw;
}

.timeScheduleBox__reservation_info p {
    font-size: 0.8rem;
    margin: 10px 0 0;
    padding: 0 10px;
}

/*---------------------------------------------------------------------------
追従ボタン
---------------------------------------------------------------------------*/
.fixed-buttons {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    z-index: 1000;
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

.black-band {
    display: none;
}

.button {
    flex: 1 1 50%;
    box-sizing: border-box;
    padding: 15px 8px;
    color: white;
    text-decoration: none;
    transition: background-color 0.3s;
    text-align: center;
    cursor: pointer;
    position: relative;
}

.fixed-buttons__notice {
    flex: 0 0 100%;
    box-sizing: border-box;
    margin: 0;
    padding: 7px 10px;
    padding-bottom: calc(7px + constant(safe-area-inset-bottom));
    padding-bottom: calc(7px + env(safe-area-inset-bottom));
    background-color: #262e8b;
    color: #fff;
    font-size: 0.8rem;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.02rem;
    text-align: center;
}

.first-button {
    background-color: #f79639; /* 初めての方のボタン色 */
}

.second-button {
    background-color: #5158a2; /* 2回目以降の方のボタン色 */
}

.first-button::before,
.second-button::before {
    content: ''; /* 擬似要素のための空のコンテンツ */
    position: absolute; /* 絶対位置 */
    top: 0; /* 上から0 */
    left: 0; /* 左から0 */
    right: 0; /* 右から0 */
    bottom: 0; /* 下から0 */
    background-color: rgba(255, 255, 255, 0.2); /* 薄い白の透過帯 */
    z-index: 0; /* 背景に配置 */
}

.first-button:hover {
    background-color: #f78c2e; /* ホバー時の初めての方のボタン色 */
}

.second-button:hover {
    background-color: #4b4e8a; /* ホバー時の2回目以降の方のボタン色 */
}

.button:hover::before {
    background-color: rgba(255, 255, 255, 0.3); /* ホバー時の透過帯 */
}
