@charset "utf-8";

/* =============================
Merged from style.css (base)
============================= */
/* CSS Document */

/*==================================================
スタート時は要素自体を透過0にするためのopacity:0;を指定する
===================================*/

.box{
opacity: 0;
}


/*
.fadeUp {
animation-name:fadeUpAnime;
animation-duration:1.5s;
animation-fill-mode:forwards;
opacity: 0;
}
*/


/* PC */
@media screen and (min-width:751px) {

.site-strapline {
  background: linear-gradient(90deg, #00a8df 0%, #009cd3 45%, #007fb3 100%);
  color: #ffffff;
  text-align: center;
  padding: 5px 0;
  font-size: 1.4rem;
  font-weight: 600;
	width: 100%;
}



/* header */

header{
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
z-index: 1;
position: relative;

background: #fff;

}
.header1{
width: 1200px;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
padding: 1.5rem 0;
}
.header2{
width: 360px;
}

.header2 h1 a{
opacity: 1;
display: block;
}
.header2 h1 a:hover{
opacity: 1;
}


.header3{
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
width: 750px;
}

.header4{
}

.header4 a{
display: inline-block;
font-size: 3rem;
font-weight: 600;
background: #fff;
line-height: 1;
border-radius: 5px;
}

.header4 a span::before{
content: "";
background: url("../images/ic_tel.svg");
width: 2.2rem;
height: 2.2rem;
display: inline-block;
margin-right: .5rem;
}

.header5{
   font-size: 1.5rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem 1.2rem;
  font-weight: 500;
  border: none;
  padding: 0;
  line-height: 1.6;
}


.header5 .header-dept{
  display: inline-block;
  white-space: nowrap;
  color: #333;
}
.header5 .header-dept::before{
  content: "●";
  color: #77bbf4;
  font-size: 1.2rem;
  margin-right: 0.3rem;
}
.header6{
width: 100%;
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: flex-end;
}

.header7{
margin-right: 1.5rem;
display: flex;
flex-wrap: wrap;
align-items: baseline;
}

.header7 a{
width: 100%;
display: block;
font-size: 2.5rem;
font-weight: 500;
line-height: 1;
letter-spacing: 0.1rem;
}

.header8{
font-size: 1.8rem;
display: inline-block;
margin-right: .7rem;
}

.header8 span{
width: 100%;
display: block;
background: #f8f7f1;
text-align: center;
padding: .2rem 0;
color: #6b5e4d;
font-size: 1.5rem;
}

.header9{
width: 170px;
}

.header9 a{
display: block;
width: 100%;
background: #d87d97;
text-align: center;
padding: .6rem 0;
color: #fff;
font-size: 1.4rem;
letter-spacing: .1rem;
position: relative;
border-radius: 4px;
}

.header9 div{
display: block;
width: 100%;
background: #d87d97;
text-align: center;
padding: .6rem 0;
color: #fff;
font-size: 1.4rem;
letter-spacing: .1rem;
position: relative;
border-radius: 4px;
}

.header9 a:after{
content: '';
position: absolute;
top: 0;
bottom: 0;
right: 2rem;
background: url("../images/ic_arrow1.svg");
display: inline-block;
width: 1rem;
height: 1rem;
margin: auto;
vertical-align: baseline;
transition: all .3s;
}

.header11{
font-size: 1.3rem;
line-height: 1.4;
}

.header12{
width: 100%;
font-size: 1.5rem;
letter-spacing: .2rem;
font-weight: 500;

color: #005a49;
padding-left: 5.2rem;
}

.header14{
text-align: right;
width: 100%;
font-size: 1.4rem;
color: #404040;
}


/* header */

/* nav */


/*========= ドロップダウンのためのCSS ===============*/

/*==ナビゲーション全体の設定*/
nav{
text-align: center;
background: #f8f9f9;
box-shadow: 0px 0.3rem 0.5rem 0px rgba(0,0,0,0.05);
}

/*ナビゲーションを横並びに*/
.navul, .navul2{
/*2階層目の基点にするためrelativeを指定*/
  position: relative;
  list-style: none;
  display: flex;
  justify-content: space-between;
  width: 1000px;
  margin: 0 auto;
}

.has-child{
margin: 0 0 0 0;
}

.navulli1 {
  flex: 1;
  text-align: center;
  position: relative;
}

/* 右側の縦線 */
.navulli1:not(:last-child)::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 22px;
  background: #ccc;
}
    
.navulli1 a{
  display:block;
  color:#293038;
  background:#f8f9f9;
}

.navulli1 a:hover{
  background: #cbebff;
  opacity: 1;
}
    
/*2階層目以降は横並びにしない*/
.navul2{
display: block;
}

/*ナビゲーションのリンク設定*/
.navulli1 a,
.navulli2 a,
.has-child a
{
/*矢印の基点にするためrelativeを指定*/
  position: relative;
  display: block;
  text-decoration: none;
  padding: 2.2rem 0 2.2rem 0;
  transition: all .3s;
  font-size: 1.9rem;
  letter-spacing: .05rem;
  font-weight: 500;
}

.navulli1 a span,
.has-child > a span
{
display: inline-block;
}


.navulli1 a span:hover::before,
.has-child > a span:hover::before{

}



.navulli2 a{
padding: .5rem;
}

.navulli1 a:hover,
.navulli2 a:hover,
.has-child a:hover{
color: #292e38;    
}

/*==矢印の設定*/

/*2階層目を持つliの矢印の設定*/

.has-child > a::before{
position: absolute;
left:0;
top:60px;
width:6px;
height:6px;
border-top: 2px solid #fff;
border-right:2px solid #fff;
transform: rotate(135deg);
}

/*==2階層目以降の画像設定*/

.has-child img{
width: 140px;
height: 93px;
height: auto;
transition: all .5s;
vertical-align: bottom;
}


/*== 2層目の設定 */

.navul2{
position: absolute;
top: 5.2rem;
z-index: 4;
display: flex;
justify-content: flex-start;
flex-wrap: wrap;
visibility: hidden;
opacity: 0;
transition: all .4s;
background: #fff;
width: 99.2vw;
left: 50%;
transform: translateX(-50%);
-webkit-transform: translateX(-50%);
-ms-transform: translateX(-50%);
}

/*hoverしたら表示*/
.has-child:hover > .has-childhover{
visibility: visible;
opacity: 1;
z-index: 100;
background: #004e8f;
}

/*各ナビゲーション横幅*/
.navulli2{
width: 22rem;
display: flex;
align-items: center;
}

.navulli2b{
width: 25rem;
display: flex;
align-items: center;
}

.has-child-img{
width: 20rem;
display: flex !important;
justify-content: center;
align-items: center;
}

.has-child-2{
margin: 0 auto;
width: 100rem;
padding: 1rem 0;
display: flex;
justify-content: flex-start;
flex-wrap: wrap;
}

.has-child-3{
width: 80rem;
display: flex;
justify-content: flex-start;
flex-wrap: wrap;
align-items: center;
}

/*ナビゲーションaタグの形状*/
.navulli2 a,
.navulli2b a{
font-size: 1.4rem;
text-align: left;
padding: .75rem 1rem;
position: relative;
color: #fff;
}

.navulli2 a span::before,
.navulli2b a span::before{
display: block;
position: absolute;
top: 1.6rem;
left: -0.1rem;
width: 0.6rem;
height: 0.6rem;
background-color: #ec6315;
content: '';
}

.navulli2 a:hover,
.navulli2 a:active{
color: #fff;

}

.navbnr{
display: flex;
align-items: center;
}

.navbnr a{
display: inline-block;
background: #02b2bf;
padding: 15px 18px;
color: #fff;
border-radius: 12px 5px 12px 5px;
}

.navbnr a:hover{
background: #25C5D0;
color: #fff;
}

.menu-new{
font-size: 1rem;
vertical-align: top;
padding-left: .3rem;
color: #B60000;
font-family: "Hiragino Mincho ProN", "YuMincho", "Yu Mincho", "MS PMincho", serif;
font-weight: 500;
}	


/* nav */



/* pagetop */


#page-top {
position: fixed;
bottom: 20px;
right: 20px;
z-index: 99;
}
#page-top a {
width: 60px;
display: block;
opacity: 0.9;
transition: all .3s ease;
}
#page-top a:hover {
text-decoration: none;
opacity: .5;
}


#page-top a img{
width: 60px;
height: 60px;
display: block;
}


/* pagetop */













/* subpage */
.subpagetitle__w {
width: 100%;
padding: 60px 0;
position: relative;
height: 250px;
}
.subpagetitle__w::after {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.subpagetitle__w1 {
background: url(../images/subpagetitle.jpg) left 100% no-repeat;
background-size: cover;
}
.subpagetitle__w2 {
background: #ebd5c8 url(../images/subpagetitle2.jpg) left center no-repeat;
background-size: cover;
}
.subpagetitle__w3 {
background: #ebd5c8 url(../images/subpagetitle3.jpg) left center no-repeat;
background-size: cover;
}
.subpagetitle__w4 {
background: #ebd5c8 url(../images/subpagetitle4.jpg) left center no-repeat;
background-size: cover;
}
.subpagetitle__w5 {
background: #ebd5c8 url(../images/subpagetitle5.jpg) left center no-repeat;
background-size: cover;
}
.subpagetitle1 {
text-align: center;
position: relative;
z-index: 10;
}
.subpagetitle1 h2 {
font-size: 4rem;
letter-spacing: .8rem;
color: #003f73;
line-height: 1.2;
display: inline-block;
border-radius: 5px;
width: 100%;
position: relative;
/*font-family: YakuHanMP, "Kosugi Maru", sans-serif;*/
}
.subpagetitle1 h2::before {
content: "";
background: url(../images/ic_h2.svg) no-repeat;
width: 45px;
height: 45px;
margin: 0 auto;
display: inline-block;
}
.subpagetitle1 h2 span {
display: block;
}
.subpagetitle1 h2 span::after {
display: block;
        position: relative;
        text-align: center;
        font-size: 1.6rem;
        letter-spacing: .5rem;
        color: #77bbf4;
        font-weight: 500;
        line-height: 1;
        margin: .5rem 0 0 0;
}
.subpagetitle1a h2 span::after {
content: "MEDICAL";
}
.subpagetitle1b h2 span::after {
content: "DOCTOR";
}
.subpagetitle1c h2 span::after {
content: "FACILITY";
}
.subpagetitle1d h2 span::after {
content: "RESERVATION";
}
.subpagetitle1e h2 span::after {
content: "FACILITY STANDARD";
}
.subpagetitle1f h2 span::after {
content: "INFORMATION";
}
.subpagetitle1g h2 span::after {
content: "APPOINTMENT";
}
.subpagetitle1h h2 span::after {
content: "ACCESS";
}
.subpagetitle1i h2 span::after {
content: "COSMETICs";
}
.subpagetitle1j h2 span::after {
content: "PRICE";
}
.subpagetitle1k h2 span::after {
content: "FAQ";
}
.subpagetitle1l h2 span::after {
content: "FACILITY-STANDARDS";
}
.subpagetitle2 {
width: 1000px;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.subpagetitle3 {
width: 100%;
background: #fff;
padding: 20px 20px 20px;
border-radius: 30px 10px 30px 10px;
}
.subpagetitle4 {
width: 100%;
}
.subpagetitle4 img {
border-radius: 30px 10px 30px 10px;
}
.subpage__w {
width: 100%;
background: #f0f7ff;
padding: 80px 0 110px;
}
.subpage1 {
width: 1000px;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
background: #fff;
padding: 5rem;
box-shadow: 0 0 20px rgb(75 122 190 / 10%);
border-radius: 10px;
}
.subpage2, .subpage2b {
width: 100%;
margin: 0 0 4rem 0;
}

.subpage2 h2 {
font-size: 3.5rem;
letter-spacing: .3rem;
line-height: 1;
text-align: center;
border-bottom: 10px solid #f7f7f7;
padding: 0 0 30px 0;
font-weight: 500;
font-family: YakuHanMP, "Zen Maru Gothic", sans-serif;
}
.subpage2b h2 {
font-size: 3.5rem;
letter-spacing: .3rem;
line-height: 1;
text-align: center;
color: #f08300;
border-bottom: 10px solid #f7f7f7;
padding: 0 0 30px 0;
}

.subpage3 {
width: 100%;
padding: 0 10px;
line-height: 1.8;
}
.subpage3 h4 {
font-size: 2rem;
letter-spacing: .04rem;
line-height: 1.2;
padding: 0 0 10px;
font-weight: 500;
}
.subpage4 {
width: 90%;
margin: 0 auto;
}

.subpage5 {
width: 100%;
position: relative;
padding: 30px 30px;
background: #f5f5f5;
border-radius: 10px;
}
.subpage5 ul {
width: 100%;
display: flex;
list-style: none;
flex-wrap: wrap;
}
.subpage5 ul li {
width: 50%;
line-height: 1.6;
margin: 0 0 15px 0;
padding-left: 3rem;
text-indent: -3rem;
}
.subpage5 ul li:last-child {
margin: 0 0 0 0;
}
.subpage5 ul li span {
width: 100%;
}
.subpage5 ul li span::before {
content: "";
display: inline-block;
background: url("../images/ic_check.svg");
width: 2rem;
height: 2rem;
margin: 0 10px 0 0;
vertical-align: sub;
}
.subpage6 {
width: 100%;
padding: 30px 30px;
position: relative;
background: #f5f5f5;
border-radius: 10px;
}
.subpage6 ul {
width: 100%;
}
.subpage6 ul li {
width: 100%;
line-height: 2;
margin: 0 0 15px 0;
padding-left: 3rem;
text-indent: -3rem;
}
.subpage6 ul li:last-child {
margin: 0 0 0 0;
}
.subpage6 ul li span {
width: 100%;
}
.subpage6 ul li span::before {
content: "";
display: inline-block;
background: url("../images/ic_check2.svg");
width: 2rem;
height: 2rem;
margin: 0 10px 0 0;
vertical-align: sub;
}
.subpage7 {
width: 100%;
}
.subpage7 ul {
width: 100%;
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
}
.subpage7 ul li {
width: 45%;
margin: 0 3% 28px 0;
}
.subpage7 ul li:nth-last-child(1) {
margin: 0 3% 0 0;
}
.subpage7 ul li:nth-last-child(2) {
margin: 0 3% 0 0;
}
.subpage7 ul li a {
display: block;
width: 100%;
margin: 0 auto;
background: #7cc739;
padding: 25px 0;
text-align: center;
letter-spacing: -.005rem;
color: #ffffff;
box-shadow: 6px 6px 15px #ebebeb;
font-weight: 500;
font-size: 2rem;
line-height: 1;
position: relative;
border-radius: 5px;
}
.subpage7 ul li a:hover {
transform: translateY(-3px);
opacity: .5;
}
.subpage7 ul li a span {
width: 100%;
}
.subpage7 ul li span::after {
content: "";
background: url("../images/ic_arrow4.svg");
display: inline-block;
width: 1.5rem;
height: 1.5rem;
position: absolute;
top: 30px;
right: 10px;
transform: rotate(90deg);
opacity: .9;
}
.subpage8{
width: 100%;
}

.subpage8 h3{
font-size: 2.4rem;
letter-spacing: .08rem;
line-height: 1;
padding: .3rem 0 .3rem 1.8rem;
margin: 0 0 3rem;	
position: relative;
font-weight: 500;
}

.subpage8 h3::before{
border-left: 6px solid #2762a9;
content: "";
height: 100%;
left: 0;
position: absolute;
top: 0;
border-radius: 10px;	
}
.subpage9 {
width: 400px;
margin: 0 auto;
}
.subpage9 img {
width: 100%;
border-radius: 10px;
}
.subpage10 {
width: 100%;
background: #F5F5F5;
position: relative;
padding: 30px 30px 30px;
border-radius: 0;
margin: 0 auto;
}
.subpage10 ul {
width: 100%;
}
.subpage10 ul li {
width: 100%;
line-height: 2.2;
}
.subpage10 ul li span {
width: 100%;
}
.subpage10 ul li span::before {
content: "";
display: inline-block;
background: url("../images/ic_check3.svg");
width: 2rem;
height: 2rem;
margin: 0 10px 0 0;
vertical-align: sub;
}
.subpage11 {
display: inline-block;
margin: -5.5rem 0 0 0;
background: #927ab9;
color: #fff;
text-align: center;
padding: 12px 30px;
border-radius: 3px;
position: absolute;
font-size: 1.8rem;
line-height: 1.4;
}
.subpage12 {
padding: 12px 0 0 0;
font-size: 1.6rem;
line-height: 2;
}
.subpage13 {
display: inline-block;
margin: -5.5rem 0 0 0;
background: #1eaa39;
color: #fff;
text-align: center;
padding: 12px 30px;
border-radius: 3px;
position: absolute;
font-size: 1.8rem;
line-height: 1.4;
}
.subpage14 {
display: inline-block;
margin: -5.5rem 0 0 0;
background: #7dadd4;
color: #fff;
text-align: center;
padding: 12px 30px;
border-radius: 3px;
position: absolute;
font-size: 2rem;
line-height: 1.4;
}
.subpage15 {
width: 100%;
line-height: 1.8;
}
.subpage16 {
width: 100%;
}
.subpage16 span {
line-height: 1.8;
font-size: 2.2rem;

font-weight: 700;
display: block;
padding: 3px 20px;
letter-spacing: 0.1rem;
background: #fff;
color: #213546;
border-left: 10px solid #7dadd4;
}
.subpage17 {
width: 100%;
}
.subpage17 span {
line-height: 1.8;
font-size: 1.8rem;
font-weight: 700;
display: inline-block;
padding: 6px 30px;
letter-spacing: .1rem;
background: #ffffff;
border-bottom: 1px solid #47c8af;
}
.subpage18 {
width: 100%;
}
.subpage19 {
width: 100%;
position: relative;
padding: 30px 30px;
background: #f5f5f5;
border-radius: 10px;
}
.subpage19 ul {
width: 100%;
}
.subpage19 ul li {
width: 100%;
line-height: 2;
margin: 0 0 5px 0;
}
.subpage19 ul li:last-child {
margin: 0 0 0 0;
}
.subpage19 ul li span {
width: 100%;
}
.subpage19 ul li span::before {}
.subpage20 {
display: inline-block;
margin: -5.5rem 0 0 0;
background: #fbfdd5;
color: #25cf40;
text-align: center;
padding: 12px 30px;
border-radius: 3px;
position: absolute;
font-size: 1.8rem;
line-height: 1.4;
border: 2px solid #25cf40;
font-weight: 700;
}
.subpage21::before {
content: "";
display: inline-block;
background: url("../images/ic_check4.svg");
width: 2rem;
height: 2rem;
margin: 0 10px 0 0;
vertical-align: sub;
}
.subpage22 {
display: inline-block;
margin: -5.5rem 0 0 0;
background: #0ba524;
color: #fff;
text-align: center;
padding: 12px 30px;
border-radius: 3px;
position: absolute;
font-size: 1.8rem;
line-height: 1.4;
}
.subpage23::before {
content: "";
display: inline-block;
background: url("../images/ic_check5.svg");
width: 2rem;
height: 2rem;
margin: 0 10px 0 0;
vertical-align: sub;
}
.subpage24 {
width: 320px;
margin: 0 auto 30px;
}
.subpage24 a {
width: 100%;
display: block;
background: linear-gradient(90deg, #1ea189, #0cbd7c);
text-align: center;
font-size: 2rem;
font-weight: 500;
color: #fff;
border-radius: 200px;
line-height: 1;
padding: 20px 0;
box-shadow: 7px 7px 20px #9ff4c2;
letter-spacing: .05rem;
}
.subpage24 a span::before {
content: "";
background: url("../images/ic_arrow1.svg") no-repeat;
display: inline-block;
width: 1.5rem;
height: 1.5rem;
margin: 0 8px 0 0;
vertical-align: middle;
}
.subpage25 {
width: 100%;
font-size: 3rem;
/*font-family: 'Zen Old Mincho', serif;*/
padding: 30px 40px;
background: #f1fff6;
}
.subpage26 {
display: inline-block;
padding: 0 0 0 50px;
}
.subpage26::first-letter {
color: #009f88;
display: inline-block;
font-weight: 900;
font-size: 5rem;
margin: 0 5px 0 0;
}
.subpage27 {
display: inline-block;
padding: 0 0 0 150px;
}
.subpage27::first-letter {
color: #00a341;
display: inline-block;
font-weight: 900;
font-size: 5rem;
margin: 0 5px 0 0;
}
.subpage28 {
display: inline-block;
padding: 0 0 0 250px;
}
.subpage28::first-letter {
color: #36a34b;
display: inline-block;
font-weight: 900;
font-size: 5rem;
margin: 0 5px 0 0;
}
.subpage29 {
width: 100%;
}
.subpage29 span {
line-height: 1.8;
font-size: 1.6rem;
font-weight: 500;
display: inline-block;
padding: 4px 25px;
letter-spacing: .1rem;
background: #ffffff;
border: 1px solid #7cb1db;
color: #499de1;
border-radius: 200px;
}
.subpage30 {
width: 100%;
padding: 23px 26px;
display: flex;
flex-wrap: wrap;
background: #fffee7;
border-radius: 5px;
}
.subpage31 {
width: 100%;
color: #e95446;
margin: 0 0 15px 0;
font-size: 2.4rem;
text-align: center;
}
.subpage32 {
width: 100%;
font-size: 1.5rem;
color: #4a2811;
}
.subpage33 {
width: 100%;
text-align: center;
}
.subpage34 {
width: 100%;
}
.subpage34 span {
display: block;
padding: 12px 40px;
color: #ffffff;
font-size: 2.3rem;
font-weight: 500;
margin: 0 0 40px 0;
background: linear-gradient(90deg, #009f88, #3f9fcb);
border-radius: 3px 13px 3px 13px;
}
.subpage35 {
width: 600px;
}
.subpage35 img {
width: 100%;
border-radius: 3px;
}
.subpage36 {
width: 100%;
position: relative;
padding: 30px 30px;
background: #f5f5f5;
border-radius: 10px;
}
.subpage36 ul {
width: 100%;
}
.subpage36 ul li {
width: 100%;
line-height: 2;
margin: 0 0 5px 0;
}
.subpage36 ul li:last-child {
margin: 0 0 0 0;
}
.subpage36 ul li span {
width: 100%;
}
.subpage36 ul li span::before {
content: "";
display: inline-block;
background: url("../images/ic_cross.svg");
width: 2rem;
height: 2rem;
margin: 0 10px 0 0;
vertical-align: sub;
}
.subpage37 {
display: inline-block;
margin: -5.5rem 0 0 0;
background: #ef506b;
color: #fff;
text-align: center;
padding: 12px 30px;
border-radius: 3px;
position: absolute;
font-size: 1.8rem;
line-height: 1.4;
}
.subpage38 {
width: 100%;
margin: 0 0 30px 0;
padding: 10px 30px;
font-size: 2.2rem;
font-weight: 700;
color: #009f88;
border-bottom: 1px solid #e5e5e5;
}
.subpage39 {
width: 100%;
margin: 0 0 15px 0;
padding: 0 0 0 20px;
}
.subpage39 span {
display: inline-block;
text-align: center;
padding: 5px 40px;
border-radius: 200px;
font-size: 1.8rem;
color: #009f88;
font-weight: 700;
border: 1px solid #009f88;
}
.subpage40 {
width: 100%;
font-size: 2.8rem;
/*font-family: 'Zen Old Mincho', serif;*/
padding: 0 0 0 60px;
font-weight: 700;
}
.subpage41 {
font-size: 1.8rem;
font-weight: 400;
display: inline-block;
margin: 0 0 0 5px;
}
.subpage42 {
font-size: 1.6rem;
font-weight: 500;
padding: 0 0 0 60px;
width: 100%;
}
.subpage43 {
width: 100%;
display: flex;
flex-wrap: wrap;
}
.subpage44 {
width: 100%;
margin: 0 0 15px 0;
}
.subpage44 span {
display: inline-block;
background: #009f88;
color: #fff;
padding: 2px 8px;
border-radius: 3px;
margin: 0 15px 0 0;
}
.subpage45 {
width: 100%;
margin: 0 0 35px 0;
}
.subpage45:last-child {
margin: 0 0 0 0;
}
.subpage45 span {
display: inline-block;
background: #fff;
color: #009f88;
padding: 2px 8px;
border-radius: 3px;
margin: 0 15px 0 0;
border: solid 1px #009f88;
}
.subpage46 {
width: 800px;
margin: 0 auto;
}
.subpage46 img {
width: 100%;
}
.subpage47 {
width: 100%;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
}
.subpage48 {
text-align: center;
font-size: 3.7rem;
width: 100%;
color: #009f88;
letter-spacing: .5rem;
font-weight: 500;
margin: 0 0 40px 0;
}
.subpage49 {
font-size: 3.5rem;
font-weight: 900;
color: #009f88;
letter-spacing: .005rem;
line-height: 1.2;
}
.subpage50 {
width: 100%;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
}
.subpage51 {
width: 100%;
padding: 20px 20px;
background: #f4f0e1;
margin: 0 0 25px 0;
font-size: 1.8rem;
font-weight: 700;
border-radius: 3px;
color: #3c2f19;
text-align: center;
}
.subpage52 {
text-align: center;
width: 100%;
}
.subpage53 span {
font-size: 1.7rem;
background: #fff;
padding: 3px 20px;
color: #eb7777;
border-radius: 5px;
display: inline-block;
font-weight: 700;
border: solid 1px #eb7777;
}
.subpage54 {
width: 100%;
color: #eb7777;
font-size: 1.7rem;
margin: 0 0 5px 0;
}
.subpage55 {
width: 100%;
color: #383618;
font-size: 1.5rem;
}
.subpage56 {
width: 100%;
}
table.subpage57 {
width: 100%;
}
table.subpage57 th {
border: 1px solid #e9e9e9;
}
table.subpage57 td {
border: 1px solid #e9e9e9;
height: 7rem;
}
.subpage58 {
width: 25%;
vertical-align: middle;
padding: 10px 20px;
background: #f6f6f6;
}
.subpage59 {
width: 55%;
padding: 10px 20px;
vertical-align: middle;
font-size: 1.7rem;
}
.subpage60 {
width: 20%;
padding: 10px 20px;
text-align: right;
vertical-align: middle;
}
.subpage61 {
font-size: 1.5rem;
font-weight: 500;
display: inline-block;
background: #fff;
padding: 1px 12px;
text-align: center;
color: #4a6396;
margin: 6px 0 0 0;
border: 1px solid #c5cddd;
}
.subpage62 {
width: 100%;
margin: 0 0 10px 0;
}
.subpage62 a {
display: block;
width: 100%;
background: #fff;
padding: 20px 20px 25px;
font-size: 1.8rem;
}
.subpage62 a span {
display: inline-block;
border-bottom: 1px dotted #5779bc;
color: #5779bc !important;
}
.subpage62 a span::before {
content: "";
display: inline-block;
margin: 0 10px 0 0;
background: url("../images/ic_link.svg");
width: 1.5rem;
height: 1.5rem;
}
.subpage63 {
display: inline-block;
margin: -5.5rem 0 0 0;
background: #47c8af;
color: #fff;
text-align: center;
padding: 12px 30px;
border-radius: 3px;
position: absolute;
font-size: 1.8rem;
line-height: 1.4;
width: 93%;
}
.subpage64 {
width: 800px;
}
.subpage64 img {
width: 100%;
border-radius: 3px;
}
.subpage65 {
width: 800px;
text-align: center;
}
.subpage65 img {
width: 50%;
border-radius: 3px;
}
.subpage66 {
width: 25%;
vertical-align: middle;
padding: 10px 20px;
background: #f6f6f6;
}
.subpage67 {
width: 38%;
padding: 10px 20px;
vertical-align: middle;
font-size: 1.7rem;
}
.subpage68 {
width: 37%;
padding: 10px 20px;
vertical-align: middle;
}
.subpage69 {
width: 100%;
display: flex;
justify-content: center;
flex-wrap: wrap;
align-items: center;
margin: 0 0 12px 0;
}
.subpage69:last-child {
margin: 0 0 0 0;
}
.subpage70 {
width: 42%;
display: inline-block;
padding: 1px 0;
text-align: center;
border: 1px solid #059f88;
margin: 0 15px 0 0;
background: #059f88;
color: #fff;
border-radius: 2px;
font-size: 1.5rem;
font-weight: 700;
}
.subpage71 {
width: 30%;
margin: 0 0 0 0;
text-align: right;
}
.subpage72 {
width: 100%;
text-align: center;
}
.subpage72 a {
width: 100%;
text-align: center;
display: block;
}
.subpage72 a img {
width: 728px;
box-shadow: 5px 5px 10px #c7f5d1;
}
/* subpage */











/* dooctor */
.doctor0{
width: 1000px;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
justify-content: center;
padding: 0 0 4rem 0;
}
.doctor1 {
width: 900px;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.doctor2 {
width: 300px;
}
.doctor2 img {
width: 100%;
border-radius: 5px;
}
.doctor3 {
width: calc(100% - 450px);
display: flex;
flex-wrap: wrap;
padding: 5rem 0;
background: #fff;
justify-content: center;
align-items: center;
border-radius: 5px;
}
.doctor4 {
font-size: 2.2rem;
line-height: 1.4;
width: 100%;
letter-spacing: .5rem;
text-align: center;

}
.doctor5 {
font-size: 4rem;
width: 100%;
text-align: center;
font-weight: 600;
}
.doctor6 {
font-size: 1.4rem;
text-align: center;
width: 100%;
letter-spacing: .3rem;
}
.doctor6 {
width: 100%;
margin: 0 0 0 0;
}
.doctor7 {
margin-bottom: 1.5rem;
}
.doctor7 h3 {
font-size: 3.2rem;
text-align: center;
letter-spacing: .2rem;
}
.doctor8 {
background: #fff;
border-radius: 10px;
padding: 50px 70px;
width: 1000px;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.doctor9 {
width: 1000px;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.b_line {
border-bottom: 1px dotted #51483e;
        padding: 0 0 8rem 0;
        margin: 0 auto 8rem;
}
.doctor10 {
margin: 20px auto 0;
padding: 15px 30px;
background: #d3e8fa;
border-radius: 10px;
text-align: center;
}
.doctor11 {
margin-bottom: 1.5rem;
}
.doctor11 h3 {
font-size: 2.6rem;
text-align: center;
letter-spacing: .2rem;
}
.doctor12 {
background: #fff;
border-radius: 10px;
padding: 30px 70px;
width: 100%;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.doctor13 {
width: 100%;
color: #323232;
font-weight: 400;
}
.doctor14 {
width: 100%;
margin: 0 0 18px 0;
line-height: 1.3;
}
.doctor15 {
width: 48%;
}
.doctor16 {
width: 100%;
line-height: 2;
}
.doctor16 ul	{
list-style: none
}
.doctor16 ul li {
padding-left: 1em;
text-indent: -1em;
}
.doctor17 {
width: 100%;
font-size: 2.7rem;
text-align: center;
margin: 0 0 30px 0;
color: #36a34c;
font-weight: 500;
}
.doctor17b {
width: 100%;
font-size: 2.7rem;
text-align: center;
margin: 0 0 30px 0;
color: #2762a9;
font-weight: 500;
}

.doctor18 {
width: 100%;
font-size: 1.6rem;
line-height: 1.8;
}
.doctor19 {
width: 100%;
font-size: 1.4rem;
}
ul.drhistory {
display: flex;
flex-flow: row wrap;
padding: 0 0 10px 0;
list-style: none;
}
ul.drhistory li:first-child {
display: block;
color: #323232;
font-weight: 400;
margin: 0 20px 0 0;
width: 140px;
}
ul.drhistory li:nth-child(2) {
color: #333;
}
    
ul.draward {
display: flex;
flex-flow: row wrap;
padding: 0 0 10px 0;
list-style: none;
}
ul.draward li:first-child {
display: block;
color: #323232;
font-weight: 400;
margin: 0 20px 0 0;
width: 140px;
}
ul.draward li:nth-child(2) {
color: #333;
flex: 1;    
overflow-wrap: break-word;
word-break: normal;
hyphens: auto    
}    
   
/* dooctor */













/*dermatology*/	

.tbl_w table {
border-collapse: collapse;
width: 100%;
max-width: 800px;
margin: auto;
background-color: #fff;
}

.tbl_w th, td {
border-bottom: 1px solid #d1edd0;
padding: 1rem;
text-align: center;
vertical-align: middle;
}

.tbl_w th {
background-color: #2da845;
font-weight: bold;
text-align: center;
color: #ffffff;
}

.tbl_w tr:nth-child(even) {
background-color: #eef7f0;
}	

.about1 {
width: 90%;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
margin: 0 auto;
}
.about2 {
width: 45%;
background: #F7F7F7;
border-radius: 10px;
margin: 0 0 40px 0;
}
.about2:last-child,
.about2:nth-last-child(2){
margin: 0;
}    
.about3 {
width: 100%;
}
.about3 img {
width: 100%;
border-radius: 10px 10px 0 0;
}
    
       
    
    
.about4 {
width: 100%;
font-size: 1.8rem;
text-align: center;
line-height: 1.4;
padding: 2rem 0
}
.about5 {
width: 100%;
padding: 0 20px;
margin: 0 0 20px 0;
font-size: 1.5rem;
letter-spacing: 0;
}
.about6 {
width: 90%;
margin: 0 auto 50px;
background: #fffbd8;
border-radius: 5px;
padding: 20px 40px;
}
.about6 ul li {
width: 100%;
margin: 15px auto 15px;
padding-left: 1em;
text-indent: -1em;
}
/*dermatology*/		






















/* access */
.access__w {
width: 1000px;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.access1 {
width: 100%;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
margin: 0 0 50px 0;
}
.access2 {
width: 100%;
text-align: center;
}
.access2 img {
width: 570px;
border-radius: 5px;
border: solid 1px #E3E9ED;    
}
.access3 {
width: 100%;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
text-align: center;
}
.access4 {
width: 100%;
font-weight: 700;
font-size: 1.4rem;
letter-spacing: 0.05;
}
.access5 {
width: 100%;
}
.access5 a {
width: 100%;
display: block;
font-size: 4rem;
color: #4b4948;
font-weight: 900;
line-height: 1;
}
.access5 a span {}
.access5 a span::before {
content: "";
background: url("../images/ic_tel.svg");
display: inline-block;
width: 3.2rem;
height: 3.2rem;
margin: 0 10px 0 0;
vertical-align: bottom;
}
.access6 {
width: 100%;
display: flex;
flex-wrap: wrap;
justify-content: space-between;   
}
.access7 {
width: 100%;
border-radius: 10px;
margin: 0 auto;
}
.access8 {
width: 100%;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: stretch;
margin: 0 0 1px 0;

}
.access8:first-child {}
.access8:last-child {}
.access9 {
width: 25%;
font-size: 1.7rem;
line-height: 1.2;
background: #2762a9;
padding: 2rem;
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: center;
color: #fff;
border-radius: 3px;
}
.access10 {
width: 75%;
line-height: 1.5;
font-size: 1.6rem;
padding: 2.5rem 2.5rem;
background: #fafafa;
}
.access11 {
width: 80%;
margin: 0 auto;
}
.access12 {}
.access13 {
width: 100%;
}
.access14 {
width: 100%;
}
.access14 iframe {
width: 100%;
border-radius: 20px;
}
.access15 {
width: 100%;
font-weight: 700;
font-size: 1.7rem;
margin-bottom: .3rem;
}
.access16 {
width: 100%;
font-size: 1.6rem;
line-height: 1.8;
padding-left: 1em;
text-indent: -1em;
}
.access16::before {
content: "・";
margin: 0 .5em 0 0;
}  
.access17 {
width: 100%;
font-size: 1.6rem;
line-height: 1.8;
}
.access18 {
width: 32%;
}
.access18 img {
width: 100%;
border-radius: 3px;
margin: 0 0 15px;
}
.access18 span {
padding-left: 1em;
text-indent: -1em;
display: inline-block;
}
.access_route {
width: 100%;
margin: 0 0 20px 0;
}
.access_route span {
display: inline-block;
padding: 0 15px;
border: 1px solid #28634c;
background: #fff;
color: #28634c;
border-radius: 3px;
font-size: 2rem;
}
/* access */


























/* reservation */
.topreservation__w{
background: #fff;
width: 100%;
max-width: 1200px;
margin: 3rem auto .5rem;
}
.topreservation1{
display: flex;
justify-content: space-around;
}
.topreservation1 > div:first-child {
border-right: 1px solid #333;
}
.topreservation2 {
width: 50%;
text-align: center;
}
.topreservation3 {
width: 100%;
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: center;
margin-top: 10px;
}
.topreservation3 > div:first-child {
margin-right: 2rem;
}

.topreservation4 a{
display: flex;
font-size: 3.5rem;
font-weight: 700;
line-height: 1;
letter-spacing: 0.15rem;
align-items: baseline;
}
.topreservation5 {
font-size: 1.8rem;
margin-bottom: 2rem;
}
.topreservation6 {
width: 260px;
}
.topreservation6 a{
width: 100%;
display: block;
text-align: center;
background: #d87d97;
padding: 1.8rem;
color: #fff;
position: relative;
border-radius: 4px;
}
.topreservation6 div{
width: 100%;
display: block;
text-align: center;
background: #d87d97;
padding: 1.8rem;
color: #fff;
position: relative;
border-radius: 4px;
}
.topreservation6 a:after {
content: '';
position: absolute;
top: 0;
bottom: 0;
right: 2rem;
background: url(../images/ic_arrow1.svg);
display: inline-block;
width: 1.2rem;
height: 1.2rem;
margin: auto;
vertical-align: baseline;
transition: all .3s;
}
.topreservation6 a:hover {
opacity: 1;
background: #bf5f7a;
border-radius: 4px;
}
.topreservation6 a:hover::after {
right: 1.6rem;
}
.topreservation7 {
font-size: 2.3rem;
display: inline-block;
margin-right: 0.5rem;
font-family: 'Zen Old Mincho';
color: #4f4c49;
}

.topreservation8 {
font-size: 2.3rem;
display: inline-block;
margin-right: 0.5rem;
font-family: 'Zen Old Mincho';
color: #4f4c49;
}

.topreservation9 {
width: 100%;
font-size: 1.5rem;
color: #404040;
margin-top: 1rem;
text-align: left;
padding-left: 5rem;
}

/* reservation */


/* footer */
footer{
width: 100%;
background: #f9f9f9;
padding: 5rem 0;
}

/* =========================
   Footer 全体
========================= */
.footer__w {
  width: 1100px;
  margin: 0 auto;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
}

/* =========================
   白ベタ共通
========================= */
.footer-card {
  background: #fff;
  border-radius: 10px;
  border: solid 1px #E3E9ED;
  padding: 5rem 6rem;
  gap: 40px;
  display: flex;
  flex-direction: column;
}

/* =========================
   タイトル
========================= */
.footer_ttl{
  text-align: center;
  position: relative;
  margin-bottom: 3.2rem;
  font-size: 2.8rem;
        letter-spacing: .2rem;
        font-weight: 500;
        line-height: 1.3;
  font-family: YakuHanMP, "Zen Maru Gothic", sans-serif;
}

.footer_ttl span{
  display: inline-block;
  position: relative;
  padding-bottom: 25px;
}

/* 中央の短い下線 */
.footer_ttl span::after{
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 160px;
  height: 2px;
  background: #009cd3;
  transform: translateX(-50%);
}

/* 両端アクセント（短い線） */
.footer_ttl span::before{
          content: "";
        position: absolute;
        left: 50%;
        bottom: 0;
        width: 185px;
        height: 2px;
        transform: translateX(-50%);
        background: linear-gradient(#009cd3, #009cd3) left center / 8px 3px no-repeat, linear-gradient(#009cd3, #009cd3) right center / 8px 3px no-repeat;
    }
  
/* =========================
   診療時間
========================= */
.clinic-hours-section {
  width: 100%;
}

/* =========================
   アクセス 上段 左右
========================= */
.footer-access-top {
  display: grid;
  grid-template-columns: 1fr 500px;
  gap: 2.5rem;
  align-items: flex-start;
}

/* =========================
   アクセス文言（★ここ重要）
========================= */
.footer8 {
  width: 100%;
  margin: 0;
  border-bottom: none;
  padding-bottom: 0;
}

.footer9 {
  width: 100%;
  font-weight: 700;
  font-size: 1.7rem;
  margin-bottom: .3rem;
}

.footer10 {
     width: 100%;
         font-size: 1.6rem;
        line-height: 1.8;
        padding-left: 1em;
        text-indent: -1em;
}
.footer10::before {
        content: "・";
        margin: 0 .5em 0 0;
    }
.footer10:last-child {
  margin-bottom: 0;
}
.footer11 {
     width: 100%;
         font-size: 1.6rem;
        line-height: 1.8;
}
/* ■ の色 */
.txt_blue {
  color: #009cd3;
  margin-right: .3rem;
}

/* =========================
   余白調整用（既存）
========================= */
.mbpc20 {
  margin-bottom: 2rem;
}
    
/*
@media (max-width: 900px) {
  .mbsp20 {
    margin-bottom: 2rem;
  }
}*/

/* =========================
   右側 地図画像
========================= */
.footer19 {
  width: 100%;
}

.footer19 img {
  width: 100%;
  height: auto;
  display: block;
  border: solid 1px #E3E9ED;
  border-radius: 6px;
}
    
/* =========================
   バナー
========================= */
    .footer-access-bnr {
  width: 300px;
        margin: 0 auto;
}
    .footer-access-bnr a {
  width: 100%;
  display: block;
  text-align: center;
  background: #009cd3;
  color: #ffffff;
  padding: 1.8rem;
  border-radius: 4px;
  position: relative;
  border: 1px solid #009cd3;
  font-weight: 500;
  box-shadow: 10px 10px 10px #ededed;

  transition: none;
}

.footer-access-bnr a:hover {
  background: #007fb0;
  border-color: #007fb0;
  color: #fff;
          opacity: 1;
}
.footer-access-bnr a span {
        display: inline-block;
        position: relative;
        padding: 0 0 0 1.5rem;
    }
.footer-access-bnr a span::before {
  content: "▲";
        position: absolute;
        top: .15rem;
        bottom: 0;
        left: -.75rem;
        display: inline-block;
        font-size: .7rem;
        transition: all .3s;
        transform: rotate(90deg);
        color: #ffffff;
}
/* =========================
   Google Map
========================= */
.footer-gmap {
}

.footer-gmap iframe {
  width: 100%;
  aspect-ratio: 16 / 9;
  height: auto;
  border: 0;
  display: block;
  border-radius: 8px;
}








.googlemaps__w{
width: calc(100% - 550px);
padding: 0 0 0 20px;
background: #f8f6ef;
}

.googlemaps__w iframe{
width: 90%;
height: 936px;
}

/* footer */

/* ===== フッター最下段（ネイビー帯） ===== */
.footer-bottom{
  width: 100%;
  background: #f9f9f9;
  padding: 4rem 0 2.5rem;
}

.footer-bottom__inner{
  width: min(1100px, 92%);
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  gap: 20rem;
  align-items: flex-start;
}

/* --- 左：メニュー（2行×3列） --- */
.footer-bottom__menu{
  flex: 1;
}

.footer-bottom__menulist{
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.2rem 2rem;
}
.footer-bottom__menulist li{
  position: relative;
}


/* ▶アイコン（▲を90度回転） */
.footer-bottom__menulist a::before{
  content: "▲";
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%) rotate(90deg);
  font-size: .7rem;
color: #009cd3;    
}

.footer-bottom__menulist a{
  text-decoration: none;
  font-size: 1.6rem;
  letter-spacing: .02em;
  display: inline-block;
  padding: 0 0 0 1.4rem;
    position: relative;
}

.footer-bottom__menulist a:hover{
  text-decoration: underline;
    text-decoration-color: #ccc
  text-underline-offset: .3em;
}

/* --- 右：ロゴ＋住所＋TEL --- */
.footer-bottom__info{
}

.footer-bottom__logo img{
  width: 260px;
  height: auto;
  display: inline-block;
}

.footer-bottom__addr{
  margin: 1.2rem 0 .8rem;
  font-size: 1.6rem;
  line-height: 1.7;
}

.footer-bottom__tel{
  margin: 0;
  font-size: 1.8rem;
  font-weight: 600;
  letter-spacing: .02em;
}

.footer-bottom__tel a{
          display: inline-block;
        font-size: 2.6rem;
        font-weight: 600;
}
.footer-bottom__tel a::before {
        content: "";
        width: 2rem;
        height: 2rem;
        display: inline-block;
        margin-right: 0.3rem;
        background: url(../images/ic_tel.svg);
    }
.footer-bottom__tel a:hover{
  text-decoration: underline;
  text-underline-offset: .25em;
}

/* --- コピーライト --- */
.footer-bottom__copy{
  width: min(1200px, 92%);
  margin: 2.2rem auto 0;
  text-align: center;
  font-size: 1.2rem;
  line-height: 1.7;
}

  .footer-bottom__standards{
  margin-top: 3rem;
  text-align: left;
}

/* シンプルなボタン */
.footer-bottom__standards-btn{
  display: inline-block;
  text-decoration: none;
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: .02em;
  padding: 1rem 2rem 1rem 3.5rem;
  box-shadow: 0 0 8px rgb(99 99 99 / 40%);
  border-radius: 4px;
  position: relative;
        color: #003f73;    
    background: #ffff
}

/* ボタンの左▶ */
.footer-bottom__standards-btn::before{
  content: "▲";
  position: absolute;
  top: 50%;
  left: 2rem;
  transform: translateY(-50%) rotate(90deg);
  font-size: .7rem;
}

/* hover（動きなし：色だけ） */
.footer-bottom__standards-btn:hover{
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.55);
}
    
/* copyright */

/*common*/
.topaccess13 a:hover,
.header9 a:hover {
opacity: 1;
background: #bf5f7a;
border-radius: 4px;
}
.topaccess13 a:hover::after,
.header9 a:hover::after {
right: 1.6rem;
}

/* access */

.access__w{
width: 1000px;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}

/* access */


/*HeightMinというクラス名がついたら高さを小さく、上部固定に*/
#fixnav.HeightMin{
position: fixed;
z-index: 999;/*最前面へ*/
animation: DownAnime 0.5s forwards;
top: 0;
width: 100%;
text-align: center;
}

#fixnav{
background: #fff;
}


/*nav*/

.newspage1{
width: 100%;
display: flex;
flex-wrap: wrap;

}

.newspage2{
width: 100%;
font-size: 1.4rem;
margin: 0 0 8px 0;
color: #555;
}

.newspage3{
width: 100%;
font-size: 2.2rem;
color: #3caa30;
margin: 0 0 10px 0;
}

.newspage4{
width: 100%;
font-size: 1.6rem;
}


/* <!--btn reservation--> */
.btn_fix__w{
position: fixed;
top: 260px;
right: 50px;
z-index: 2100;
}

.btn_fix__w a{
width: 196px;
height: 220px;
display: block;
}

.btn_fix__w a img{
width: 100%;
height: 100%;
}

.btn_fix__w a:hover,
.btn_fix__w a:active{
opacity: .7;
transform: translateY(-5px);
}


/* <!--btn reservation--> */
.btn_fix2__w{
position: fixed;
top: 510px;
right: 20px;
z-index: 2100;
}

.btn_fix2__w a{
width: 196px;
height: 220px;
display: block;
}

.btn_fix2__w a img{
width: 100%;
height: 100%;
}

.btn_fix2__w a:hover,
.btn_fix2__w a:active{
opacity: .7;
transform: translateY(-5px);
}


/* access */
.footertimetable__w {
flex: 1;
margin: 0 auto;
}

.footertimetable1 {
width: 100%;
margin: 0 auto;
}
.footertimetable2 {
display: flex;
flex-wrap: wrap;
height: 100%;
}
.topreservation3 {
width: 100%;
text-align: center;
margin-bottom: 3rem;
}
.footertimetable4 {
border-collapse: collapse;
overflow-x: scroll;
width: 650px;
margin: 0 auto;
}
.footertimetable4 th,
.footertimetable4 td {
padding: .9rem 1.2rem;
text-align: center;
border-bottom: 1px solid #fff;
font-size: 1.5rem;
color: #fff;
position: relative;
}

.footertimetable4 th {
font-weight: 400;
vertical-align: middle;
}

.footertimetable4 th span {
font-size: 1rem;
display: inline-block;
}

.footertimetable5 {
width: 100%;
text-align: right;
color: #fff;
margin-top: .5rem;
padding-right: 1rem;
font-size: 1.5rem;
}

.footertimetable6 {
display: inline-block;
text-align: left;
}

.footertimetable4 td sup {
position: absolute;
vertical-align: super;
font-size: 1rem;
letter-spacing: 0;
}

.footertimetable4 th sup {
position: absolute;
vertical-align: super;
font-size: 1rem;
letter-spacing: 0;
}

.biyoprice__w {
width: 100%;
margin-top: 7rem;
}

.biyoprice1 {
width: 750px;
margin: 0 auto;
}

.biyoprice2 {
width: 100%;
text-align: center;
margin-bottom: 3.5rem;
}

.biyoprice2 span {
font-size: 2.2rem;
display: inline-block;
text-align: center;
padding: .5rem 2.5rem;
border: 1px solid #555;
font-weight: 500;
}

.biyoprice3 {
width: 100%;
font-size: 2rem;
text-align: center;
margin-bottom: 1rem;
font-weight: 500;
}

.biyoprice_text {
font-size: 1.35rem;
}

.biyoprice4 {
width: 100%;
margin-bottom: 4rem;
}

.biyoprice4 table {
width: 70%;
margin: 0 auto;
}

.biyoprice4 table td{
border: 1px solid #d0d0d0;
padding: .7rem 2rem;
vertical-align: middle;
background: #FCFCFC;
font-size: 1.35rem;
}

.biyoprice4 table td:first-child{
width: 40%;
font-weight: 500;
text-align: center;
}

.biyoprice4 table td:last-child{
font-weight: 500;
text-align: right;
}

.biyoprice4 table td.kaisuu{
border-right: none;
text-align: right;
width: 43%;
font-weight: 500;
}

.biyoprice4 table td.kaisuu + td{
border-left: none;
padding-left: 0;
}

.biyoprice4 table td span{
display: block;
font-size: 1.3rem;
}

.biyoprice4 table{
}




.biyoprice5 table td:nth-child(2){
text-align: right;
}

table.tabeldoctor1{
width: 100%;
border: 1px solid #989898;
}

table.tabeldoctor1 th{
border: 1px solid #989898;
padding: .5rem;
text-align: center;
font-weight: 500;
color: #fff;
background: #505050;
}

table.tabeldoctor1 td{
border: 1px solid #989898;
padding: .5rem;
text-align: center;
vertical-align: middle;
}

table.tabeldoctor1 td:first-child{
padding: .5rem;
text-align: center;
vertical-align: middle;

}

.tabeldoctor2{
background: #f2f2f2;
font-weight: 500;
}

.tabeldoctor3{
width: 100%;
text-align: right;
line-height: 1.7;
}

.tabeldoctor4{
display: inline-block;
text-align: left;
}

.checkupmenu1{
width: 100%;
text-align: center;
margin: 0 auto;
border-bottom: 1px dotted #000;
padding-bottom: 10rem;
}


.checkupmenu1 .pinkbtn01{
width: 50rem;
text-align: center;
margin: 0 auto;
}

.checkupmenu2{
text-align: center;
}



.checkupmenu3{
width: 100%;

}

.checkupmenu3 table{
width: 100%;
border: 1px solid #ccc;
}

.checkupmenu3 table th{
border: 1px solid #ccc;
padding: 1.2rem .5rem;
vertical-align: middle;
text-align: center;
font-size: 1.6rem;
font-weight: 700;
background: #eee;
}

.checkupmenu3 table th:nth-child(1){
width: 10rem;
}

.checkupmenu3 table th:nth-child(2){
width: 32rem;
}

.checkupmenu3 table th:nth-child(3){
width: calc(100% - 42rem);
}


.checkupmenu3 table td{
border: 1px solid #ccc;
padding: .5rem .5rem;
vertical-align: middle;
text-align: center;
font-size: 1.5rem;
}

.checkupmenu3 table td.checkupmenu4{
border: 1px solid #ccc;
padding: 1.7rem .5rem;
vertical-align: middle;
text-align: center;
font-size: 1.8rem;
font-weight: 600;
background: #F0F0F0;
}

.checkupmenu5{
padding: 0 2rem;
margin-top: 2rem;
margin-bottom: 8rem;
}

.pageback{
margin: 0 0 0 auto;
width: 16%;
font-size: 1.5rem;
margin-top: 20px;
font-weight: 500;
}

.pageback a::before{
content: '▲';
color: #d87d97;
}

.marker{
background: linear-gradient(transparent 70%, #ffe700 70%);
}

.makeup-parts{
font-size: 1.8rem;
color: #ffffff;
background: #62582C;
text-align: center;
width: 24%;
margin: 2em 0 1em;
}	
.makeup-parts-detail{
margin-bottom: 30px;
}	

.bnr_topics{
width: 1200px;
margin: 50px auto 0;
text-align: right;
}
.bnr_topics a{
display: inline-block;
width: 60%;
box-shadow: 3px 2px 3px #cbc2af;
}
.bnr_topics img{
width: 720px;
height: 200px;
}

.bnr_kenpo{
width: 900px;
margin: 50px auto 50px;
text-align: center;
}
.bnr_kenpo a{
display: inline-block;
width: 100%;
box-shadow: 3px 2px 10px #e7e7e6;
}
.bnr_kenpo a img{
width: 900px;
height: 100px;
}

.recruit_img{
width: 800px;
margin: 0 auto;
}
.recruit_img img{
width: 800px;
height: 400px;
}

.recruit_text{
width: 100%;
}

.recruit_title{
font-size: 2rem;
padding: 0 0.5% 1.3rem;
border-bottom: 1px solid #5d481d;
margin-bottom: 1.3rem;
color: #5d481d;
font-family: 'Playfair Display', serif;
}



.topkijun__w {
width: 100%;
background: #e5e2dd;
padding: 5rem 0;
}

.topkijun1 {
width: 800px;
margin: 0 auto;
padding: 3rem;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
background: #fff;
border-radius: 5px;
}

.topkijun2 {
width: 100%;
font-size: 2.2rem;
font-weight: 500;
text-align: center;
margin-bottom: 1rem;
}

.topkijun3 {
width: 100%;
font-size: 1.8rem;
font-weight: 500;
}

.topkijun4 {
width: 100%;
margin-bottom: 2rem;
font-size: 1.5rem;
}

.topkijun4:last-child {
margin-bottom: 0;
}






.topbnr__w{
width: 100%;
padding: 8rem 0 0;
}
.topbnr1{
width: 1000px;
display: flex;
justify-content: space-between;
margin: 0 auto;
}
.topbnr2{
width: 320px;
}

.topbnr2 img{
border: 1px solid #DCDCDC;
box-shadow: 10px 10px 10px #ededed;
}


/* cosmetics */

.yoyakubnr {
width: 100%;
}
.yoyakubnr a {
display: inline-block;;
flex-wrap: wrap;
justify-content: center;
align-items: center;
font-weight: 500;
line-height: 1.3;
color: #fff;
border-radius: 400px;
background: #f08300;
text-align: center;
box-shadow: 0 5px 0 #E9610A;
font-size: 1.8rem;
padding: 1.2rem 3rem;
}

.yoyakubnr a span::before {
content: "";
background: url("../images/ic_arrow4.svg") no-repeat;
display: inline-block;
width: .8rem;
height: .8rem;
margin: 0 .5rem 0 0;
vertical-align: middle;
}


.yoyakubnr .btn_icon {
width: 40px;
height: 40px;
margin: 0 2vw 0 0;
}














  
.referral_list li{
  position: relative;
  padding-left: 1.2em; 
  margin: 0 0 5px;
}

.referral_list li::before{
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
  color: #1b93cf;
}

.referral_list li:last-child{
  margin: 0;
}


.referral_link{
  display: inline-block;
  border-bottom: 1px dotted #1b93cf;
  color: #1b93cf !important;
  font-weight: 500;
}

    
    .medi-list li{
                width: 100%;
        line-height: 1.6;
        position: relative;
        padding-left: 2.2rem;
        text-indent: 0;
        margin: 0 0 10px;
    }
        .medi-list li::before {
        content: "";
        position: absolute;
        left: 0;
        top: 0.5em;
        width: 10px;
        height: 10px;
        background: #49a9f9;
        border-radius: 50%;
    }
    .medi-list li:last-child{
        margin: 0;
    }
    
    .supplement{
        font-size: 2rem;
        letter-spacing: .08rem;
        line-height: 1.5;
        font-weight: 500;
        padding-left: 1em;
  text-indent: -1em;
        color: #49a9f9;
    }    
    
    

.medical_list {
width: 100%;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}   
.medical_list li {
width: 48%;
line-height: 1.5;
margin: 0 0 15px 0;
font-size: 1.7rem;
position: relative;
padding-left: 1.6em;    
}
.medical_list li::before {
content: "";
position: absolute;
left: .5em;
top: 50%;
transform: translateY(-50%);
width: 10px;
height: 10px;
border-radius: 50%;
background: #185aa5;    
}
.medical_list li:last-child, .medical_list li:nth-last-of-type(2) {
margin: 0;
}   
    
    
    
/*ページ内リンク*/
    .subpage1 h3{
scroll-margin-top: 190px;
    }
    
    

    
    

/* slider */

.swiper {
  width: 100%;
  background: #fff;
  position: relative;
  overflow: hidden;
}


.swiper-wrapper {
  width: 1400px;
  max-width: 100%;
  height: 933px;
  margin: 0 auto;
}

.swiper-slide {
  text-align: center;

  /* Center slide contents vertically */
  display: -webkit-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  -webkit-align-items: center;
  align-items: center;
  position: relative;
}

/* キャッチコピー */
.swiper-slide1a {
  position: absolute;
  left: 50%;
  bottom: 8%;
  transform: translateX(-50%);
  z-index: 1;
  width: 100%;
  text-align: center;
}

/* テキストボックス */
.swiper-slide1a p {
  display: inline-block;
        font-weight: 500;
        font-size: 2.1rem;
        line-height: 1.8;
        padding: 1.6rem 5rem;
        color: #2762a9;
        border-radius: 8px;
        background: rgb(255 255 255 / 70%);
        box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
}

.swiper-slide1b {
  margin-top: 2rem;
}

.swiper-slide1b span {
  display: inline-block;
  color: #5d481d;
  font-weight: 400;
  margin-bottom: 1.3rem;
  font-size: 1.8rem;
  line-height: 1.8;
}

.swiper-slide1c {
  position: absolute;
  z-index: 1;
  bottom: 1rem;
  color: #fff;
  font-size: 1.4rem;
  text-align: right;
  display: block;
  width: 100%;
  max-width: 1930px;
  padding-right: 1rem;
}

.swiper-slide2 {
  position: relative;
}

.swiper-slide2 img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.swiper-slide2::before,
.swiper-slide2::after{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  width:120px;   /* ぼかし幅 */
  z-index:2;
  pointer-events:none;
}

/* 左 */
.swiper-slide2::before{
  left:0;
  background:linear-gradient(to right, #ffffff 0%, rgba(255,255,255,0) 100%);
}

/* 右 */
.swiper-slide2::after{
  right:0;
  background:linear-gradient(to left, #ffffff 0%, rgba(255,255,255,0) 100%);
}
.swiper-button-next,
.swiper-button-prev {
  display: none !important;
}

.swiper_txt {
  position: absolute;
  right: 2rem;
  top: 8rem;
  width: 630px;
  z-index: 10;
}

.swiper_txt img {
  display: block;
  width: 100%;
}

/* slider */


/* news */

.topnews__w{
width: 100%;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
background: #fff;
}

.topnews_bnr{
width: 800px;
margin: 1rem auto;
display: flex;
border:1px solid #ccc;
}

.topnews1 {
width: 1200px;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
padding: 5rem 5rem;
background: #fff;
border-radius: 3px;

}

.topnews2 {
width: 300px;
display: flex;
flex-wrap: wrap;
padding: 3rem;
text-align: center;
}

.topnews3 {
width: 100%;
display: flex;
flex-wrap: wrap;
text-align: center;
align-items: flex-start;
justify-content: center;
padding-top: 2rem;
}

.topnews3 h2 {
font-size: 3.4rem;
letter-spacing: .4rem;
font-weight: 500;
line-height: 1.3;
font-family: YakuHanMP, "Zen Maru Gothic", sans-serif;
text-align: center;
position: relative;
}

.topnews3 h2 span {
display: block;
width: 100%;
}


.topnews3 h2 span::after {
content: "INFORMATION";
        display: block;
        margin-top: 1.2rem;
        font-size: 1.6rem;
        font-weight: 500;
        color: #0a60b7;
        letter-spacing: 0.3rem;
        border-radius: 3px;
        width: fit-content;
        margin: 1rem auto 0;
}


.topnews4 {
width: calc(100% - 380px);
/*height: 600px;
overflow-y: scroll;*/    
}

.topnews5 {
width: 100%;
display: flex;
flex-wrap: wrap;
padding: 3.5rem 0;
}
.topnews5 iframe {
    width: 100%;
    height: 600px;
}
.topnews6 {
width: 100%;
font-size: 1.3rem;
margin-bottom: .5rem;
color: #5d481d;
opacity: .6;
}

.topnews7 {
width: 100%;
font-size: 1.8rem;
margin-bottom: .8rem;
font-weight: 500;
}

.topnews8 {
width: 100%;
font-size: 1.6rem;

}

.topnews8 iframe {
width: 100%;
height: 450px;
}

.newskiji1 {
width: 100%;
border-bottom: 1px dotted #cac8bc;
padding: 0 0 2rem 0;
margin: 0 0 2rem;
}
.newskiji2 {
width: 100%;
font-size: 1.3rem;
margin: 0 0 0 0;
font-weight: 400;
}  
.newskiji3 {
width: 100%;
}
.newskiji4 {
display: inline-block;
font-size: 1.8rem;
margin: 0 0 .5rem 0;
font-weight: 700;
} 
.newskiji5 {
width: 100%;

}  

/* news */

.topfeature__w{
width: 100%;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
padding: 7rem 0 12rem;
background: url(../images/fu_bg.jpg);
        background-size: cover;
   
}

.topfeature1{
width: 100%;
text-align: center;
margin-bottom: 7rem;
}

.topfeature1 h2 {
font-size: 3.4rem;
letter-spacing: .4rem;
font-weight: 500;
line-height: 1.3;
font-family: YakuHanMP, "Zen Maru Gothic", sans-serif;
text-align: center;
position: relative;
}

.topfeature1 h2 span {
display: block;
width: 100%;
}

/* afterを下に表示させる（縦並び） */
.topfeature1 h2 span::after {
content: "FEATURE";
        display: block;
        margin-top: 1.2rem;
        font-size: 1.6rem;
        font-weight: 500;
        color: #0a60b7;
        letter-spacing: 0.3rem;
        border-radius: 3px;
        width: fit-content;
        margin: 1rem auto 0;
}

.topfeature2{
width: 1080px;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}

.topfeature3{
width: 100%;
margin: 0 auto 6rem;
display: flex;
justify-content: space-between;
position: relative;
}
    
/* 特長ブロック */
.topfeature3{
  width: 100%;
  margin: 0 auto 6rem;
  display: flex;
  justify-content: space-between;
  position: relative;  /* 基準 */
}
.topfeature3:last-child{
  margin: 0 auto 0;
}
/* あしらい共通設定 */
.topfeature-illust{
  position: absolute;
  z-index: 1;          /* コンテンツより奥へ */
  opacity: 1;        /* 8〜12%くらいが◎ */
  pointer-events: none; /* クリック邪魔しない */
}

.topfeature-illust img{
  width: 100%;
  height: auto;
  display: block;
}


.topfeature-illust1{
          left: -40px;
        top: -90px;
        width: 140px;
}



.topfeature-illust2{
   right: -40px;
        top: -90px;
        width: 140px;
}
    

.topfeature-illust3{
 right: -250px;   /* ← 1080pxの外へ押し出す */
  top: 300px;
  width: 230px;
}
    
    
.topfeature4{
width: 520px;
position: relative;
}

.topfeature4 img{
width: 100%;
height: auto;
border-radius: 10px;
}

.topfeature4-2{
order: 2;
}

.topfeature5{
width: 490px; 
position: relative;
padding-top: 2rem;
}

.topfeature6 {
font-size: 2.6rem;
font-weight: 700;
letter-spacing: .05rem;
margin-bottom: 1.5rem;
}
.topfeature6::first-letter{
color: #2ea7e0;
}
.topfeature6 span:first-child {
color: #4b7abe;
}

.topfeature6 span {
display: inline-block;
}



.topfeature7{
line-height: 2.2;
font-weight: 400;
}
   
.topfeature8{
margin: 20px 0 0 0;   
}    
.topfeature8 a{    
  position: relative;
  text-align: center;
  padding: 1.5rem 4rem;
  box-sizing: border-box;
  border: 1px solid #003f73;
  border-radius: 5px;
  font-size: 1.5rem;
  font-weight: 500;
  letter-spacing: 0.02rem;
  display: inline-block;
  color:#003f73;
  background: #fff;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
            box-shadow: 5px 5px 10px rgb(164 194 199 / 30%);
}

.topfeature8 a:hover{
  background:#003f73;
  color:#fff;
  border-color:#003f73;
    opacity: 1;
}


.topfeature8 a span{
  position: relative;
  padding-left: 1.8rem;
}

.topfeature8 a span::before{
  content: "▶";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1rem;
  color: #2762a9;
  transition: color .15s ease;
}

.topfeature8 a:hover span::before{
  color:#ffffff;
}







/* subject */
.topsubject__w{
width: 100%;
padding:7rem 0 12rem;
    position: relative;
     overflow: hidden;
     background: #f2f2f27d;
}

.topsubject__bg{
  position: absolute;
  top: 0;
  height: 100%;     /* ← コンテンツの高さに追従 */
  width: auto;      /* ← 高さに応じて幅自動 */
  object-fit: contain;
  pointer-events: none;
  z-index: -1;
  opacity: 0.5;
}

.topsubject__bg--left{ left: 0; }
.topsubject__bg--right{ right: 0; }
    
.topsubject1{
width: 100%;
text-align: center;
margin-bottom: 7rem;
 position: relative;
  z-index: 2;    
}

.topsubject1 h2 {
font-size: 3.4rem;
letter-spacing: .4rem;
font-weight: 500;
line-height: 1.3;
font-family: YakuHanMP, "Zen Maru Gothic", sans-serif;
text-align: center;
position: relative;
}

.topsubject1 h2 span {
display: block;
width: 100%;
}

/* afterを下に表示させる（縦並び） */
.topsubject1 h2 span::after {
content: "MEDICAL";
        display: block;
        margin-top: 1.2rem;
        font-size: 1.6rem;
        font-weight: 500;
        color: #0a60b7;
        letter-spacing: 0.3rem;
        border-radius: 3px;
        width: fit-content;
        margin: 1rem auto 0;
}

    
/* =========================
   診療科目 
========================= */
.topsubject2 {
  width: 980px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
     position: relative;
  z-index: 2;
}

.topsubject2 a {
          width: calc((100% - 90px) / 4);
        text-decoration: none;
        color: #425377;
        background: #ffffff;
        border-radius: 12px;
        padding: 20px 0 30px;
        text-align: center;
        transition: all 0.25s ease;
        border: solid 3px #e0f1ff;
}

.topsubject2 a:hover {
  background: #cbebff;
  opacity: 1;
}
    
.topsubject2 img {
  width: 100%;
  height: auto;
  display: block;
}
    /*class名が「-icon」で終わる要素すべて*/
.topsubject2 [class$="-icon"] {
  display: block;
  width: 90px;
  height: 90px;
  margin: 0 auto 0;
}


 /*class名が「-text」で終わる要素すべて*/
.topsubject2 [class$="-text"] {
  display: block;
  font-size: 2rem;
  line-height: 2;
  letter-spacing: 0.05em;
  font-weight: 500;
} 
.topsubject3{
         width: 100%;
        text-align: center;
        
    }
.topsubject3 p{
         display: inline-block;
        text-align: center;
        font-weight: 500;
        font-size: 1.6rem;
        letter-spacing: 0.1em;
        padding: 20px 60px;
        border: 2px #003f73 dotted;
        border-radius: 8px;
        color: #003f73;
    }
/* subject */



/* subject */

.topkenshin__w{
width: 100%;
padding: 6rem 0 8rem;
}

.topkenshin1{
width: 100%;
}

.topkenshin1 h2{
text-align: center;
font-size: 2rem;
font-weight: 400;
letter-spacing: .2rem;
}

.topkenshin1 h2 span::before {
content: "CHECKUP";
display: block;
width: 100%;
text-align: center;
font-size: 3.8rem;
font-weight: 400;
font-family: 'Playfair Display', serif;
}

.topkenshin2{
width: 1200px;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: flex-start;
}

.topkenshin3{
width: 370px;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}

.topkenshin4{
width: 100%;
}

.topkenshin4 img{
width: 370px;
height: 247px;
}

.topkenshin5{
width: 100%;
text-align: center;
font-size: 2rem;
padding: 1.5rem 0 1.5rem;
border-bottom: 1px solid #5d481d;
margin-bottom: 1.5rem;
color: #5d481d;
}

.topkenshin6{
width: 100%;
font-size: 1.5rem;
line-height: 2.2;
font-weight: 400;
}

/* subject */


/* medical */

.topmedical__w{
width: 100%;
padding: 8rem 0 9rem;
background: url("../images/topmedicalbg.png") left bottom no-repeat #fafafa;
}

.topmedical1{
width: 1100px;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: center;
}

.topmedical2{
width: 340px;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
background: #fff;
border-radius: 5px;
margin-right: 26px;
}

.topmedical2:nth-child(3){
margin-right: 0;
}

.topmedical2:hover{
transform: translateY(-3px);
}

.topmedical3{
width: 100%;
}

.topmedical3 img{
width: 100%;
border-radius: 5px 5px 0 0;
}

.topmedical4{
width: 100%;
text-align: center;
}

.topmedical4 img{
width: 113px;
height: 99px;
margin-top: -50px;
}

.topmedical5{
width: 100%;
font-size: 2.2rem;
text-align: center;
line-height: 1.4;
font-weight: 400;
padding: 2rem 0 0;
font-family: YakuHanJP, 'Noto Serif JP', sans-serif;
}

.topmedical5 span{
display: block;
position: relative;
width: 100%;
}

.topmedical5 span::after{
content: "";
background: url("../images/ic_arrow2.svg");
width: 1.4rem;
height:1.4rem;
display: inline-block;
vertical-align: middle;
position: absolute;
right: 2rem;
top: 2.7rem;
}

.topmedical6{
font-size: 1.6rem;
display: block;
}

.topmedical7{
width: 495px;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
background: #fff;
padding: 5rem 2rem;
margin-right: 26px;
border-radius: 5px;
}

.topmedical2:nth-child(3){
margin-right: 0;
}

.topmedical7:hover{
transform: translateY(-3px);
}

.topmedical8{
display: block;
width: 50px;
}

.topmedical8 img{
width: 50px;
height: 50px;
}

.topmedical9{
width: calc(100%);
font-size: 2rem;
text-align: center;
line-height: 1.2;
letter-spacing: .07rem;
font-family: YakuHanJP, 'Noto Serif JP', sans-serif;
font-weight: 400;
}

.topmedical9 span{
display: block;
position: relative;
}

.topmedical9 span::after{
content: "";
background: url("../images/ic_arrow2.svg");
width: 1.4rem;
height:1.4rem;
display: inline-block;
vertical-align: middle;
position: absolute;
right: 0;
top: .5rem;
}


.topmedical10{
width: 100%;
font-size: 1.4rem;
padding: 2rem 1rem 2.7rem;
text-align: center;
}

.topsubject11{
width: 100%;
}

.topsubject11 h2{
text-align: center;
font-size: 2.5rem;
font-weight: 500;
font-family: YakuHanJP, 'Noto Serif JP', sans-serif;
color: #4c2828;
letter-spacing: .3rem;
}

.topsubject11 h2 span::after{
content: "";
display: block;
background: #81391b;
width: 5rem;
height: .1rem;
margin: 1rem auto 0;
}

/* medical */


/* access */
.topaccess__w {
width: 100%;
padding: 7rem 0 9rem;
background: #f4f7f7;
}

.topaccess1{
width: 100%;
text-align: center;
margin-bottom: 5rem;
}

.topaccess1 h2 {
font-size: 3.4rem;
letter-spacing: .4rem;
font-weight: 500;
line-height: 1.3;
font-family: YakuHanMP, "Zen Maru Gothic", sans-serif;
text-align: center;
position: relative;
}

.topaccess1 h2 span {
display: block;
width: 100%;
}

/* afterを下に表示させる（縦並び） */
.topaccess1 h2 span::after {
content: "ACCESS";
        display: block;
        margin-top: 1.2rem;
        font-size: 1.5rem;
        font-weight: 800;
        color: #77bbf4;
        letter-spacing: 0.3rem;
        border-radius: 3px;
        width: fit-content;
        margin: 1rem auto 0;
}

.topaccess2 {
width: 1000px;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
}

.topaccess3 {
width: 450px;
position: relative;
}

.topaccess3 img{
width: 100%;
}

.topaccess4 {
width: 750px;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
position: relative;
}

.topaccess5 {
width: 50%;
padding: 2rem 0 4rem;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
border-right: 1px solid #5d481d;
}

.topaccess6 {
width: 100%;
font-size: 1.8rem;
line-height: 1.8;
text-align: center;
}

.topaccess7 {
width: 100%;
font-size: 2.5rem;
font-weight: 500;
text-align: center;
letter-spacing: .2rem;
}

.topaccess8 {
width: 100%;
font-size: 1.5rem;
text-align: center;
}

.topaccess8b {
width: 100%;
font-size: 1.5rem;
text-align: center;
}

.topaccess9 {
width: 50%;
padding: 2rem 0 4rem;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}

.topaccess10 {
width: 100%;
font-size: 1.8rem;
text-align: center;
}

.topaccess11 {
display: inline-block;
font-size: 3rem;
font-weight: 500;
text-align: center;
padding: 0 .5rem;
}

.topaccess13 {
width: 300px;
position: absolute;
bottom: -3.5rem;
left: 50%;
transform: translateX(-50%);
-webkit-transform: translateX(-50%);
-ms-transform: translateX(-50%);
}
.topaccess13 a {
width: 100%;
display: block;
text-align: center;
background: #d87d97;
padding: 1.8rem;
color: #fff;
position: relative;
border-radius: 4px;
}
.topaccess13 a:after {
content: '';
position: absolute;
top: 0;
bottom: 0;
right: 2rem;
background: url(../images/ic_arrow1.svg);
display: inline-block;
width: 1.2rem;
height: 1.2rem;
margin: auto;
vertical-align: baseline;
transition: all .3s;
}

.topaccess14 {
width: 100%;
max-width: 1200px;
margin: 9rem auto 0;
height: 0;
overflow: hidden;
padding-bottom: 20.25%;
position: relative;
}
.topaccess14 iframe{
position: absolute;
left: 0;
top: 0;
height: 100%;
width: 100%;
}

.topaccess15{
width: 100%;
display: flex;
justify-content: center;
justify-content: space-between;
}

.topaccess16{
width: 480px;

}

.topaccess16 iframe{
height: 100%;
width: 100%;


}
.topaccess17{
width: 300px;
margin: 0 auto;
margin-top: 4rem;
}
.topaccess18 a{
width: 100%;
display: block;
text-align: center;
background: #fff;
padding: 1.8rem;
border-radius: 4px;
position: relative;
border: 1px solid #e7e7e7;
font-weight: 500;
box-shadow: 10px 10px 10px #ededed;
}
.topaccess18 a span {
display: inline-block;
position: relative;
padding: 0 0 0 1.5rem;
}

.topaccess18 a span::before {
content: "▲";
position: absolute;
top: .15rem;
bottom: 0;
left: -.75rem;
display: inline-block;
font-size: .7rem;
transition: all .3s;
transform: rotate(90deg);
color: #4b7abe;
}
.topaccess18 a:hover {
  background: #004499 !important;
}
.topaccess19 {
width: 480px;
position: relative;
}

.topaccess19 img{
width: 100%;
height: auto;
border: solid 1px #E3E9ED;
}
/* access */


/* ============================
診療時間表（緑トーン ver.）
既存CSSの後ろに追記して上書き
============================ */

.clinic-hours {
width: 550px;           /* 少し横幅を広げる（任意） */
margin: 0 auto 2.5rem;
background: #ffffff;
}

.clinic-hours .hours-table {
width: 100%;
border-collapse: collapse;
font-size: 1.6rem;
table-layout: fixed; /* 幅のブレ防止 */
}

/* 見出しセル（左端「診療受付時間」） */
.clinic-hours .hours-table th.label {
background: #3363ab;       /* 指定色 */
color: #fff;
padding: 14px 10px;
text-align: center;
font-weight: 500;
letter-spacing: 0.06em;
border-right: 1px solid #0d49a4;
width: 9.5em;              /* 目安幅（任意） */
}

/* 曜日ヘッダ */
.clinic-hours thead th {
background: #3363ab;       /* #155145 より少し明るめの同系色 */
color: #fff;
padding: 20px 8px;
text-align: center;
font-weight: 700;
border-left: 1px solid #0d49a4;
border-bottom: 1px solid #0d49a4;
border-right: 1px solid #0d49a4;
}

/* 時間帯の行見出し */
.clinic-hours .hours-table th.time {
background: #f9f9f9;       /* 緑系の淡色 */

padding: 20px 8px;
text-align: center;
font-weight: 500;
border: 1px solid #D3D3D3;
width: 9.5em;              /* 目安幅（任意） */
}

/* セル共通 */
.clinic-hours td {
padding: 14px 8px;
text-align: center;
border: 1px solid #D3D3D3;
background: #ffffff;
font-weight: 500;
font-size: 18px;
}

/* 記号スタイル */
.clinic-hours td.open {      /* ● */
color: #f2b600;           /* 指定色 */
}

.clinic-hours td.closed {    /* ／ */
color: #c7d0cd;
}

.clinic-hours td.special {   /* ★ */
color: #f2b600;           /* 視認性の高いゴールド */
}

/* 角丸の見え方最適化（テーブル外周の線を消す） */
.clinic-hours .hours-table {
border: none;
}
.clinic-hours .hours-table thead th:first-child { border-left: none; }




/* ============================
診療時間表下の注意書き
============================ */

.clinic-notes {
width: 100%;
margin: 1.5rem auto 2rem;
background: #f9f9f9;
border-radius: 6px;
padding: 1.7rem 2rem;
font-size: 1.4rem;
}

.clinic-notes p {
margin: 0 0 1rem;
text-indent: -1em;
padding-left: 1em;
}

/* 1行目（休診日） */
.clinic-notes1 {
font-weight: bold;
color: #F14D4D;
}

/* 2行目（★） */
.clinic-notes2 {
font-weight: bold;
}

.clinic-notes2 span {
color: #f2b600; /* ★カラー */
}

/* 3行目以降（※） */
.clinic-notes3 span {
color: #F14D4D; /* ※のみ赤 */
font-weight: bold;
}

    
/* =========================
   Web予約 横長バナー
========================= */

.web-reservation-banner-wide{
          margin: 30px auto 30px;
        width: 300px;
}

.web-reservation-banner-wide__btn{
  display: flex;
  align-items: center;
  justify-content: center;

  background: linear-gradient(0deg, #30b0bc, #85d2d9);
  color: #ffffff;

  padding: 22px 30px;
  border-radius: 10px;
  text-decoration: none;

  font-size: 1.9rem;
  font-weight: 500;

  border: 1px solid #68bec6;
  transition: 0.3s;
  gap: 18px;
}

/* アイコン */
.web-reservation-banner-wide__btn::before{
  content: "";
  display: inline-block;

  background: url(../images/ic_calendar.svg) no-repeat center;
  background-size: cover;

  width: 3.6rem;
  height: 3.6rem;

  flex-shrink: 0;
}

/* hover */
.web-reservation-banner-wide__btn:hover{
  background: linear-gradient(0deg, #2aa3af, #7ccbd2);
  transform: translateY(-2px);
}   
/* =========================
   予約注意ボックス
========================= */

.reservation-notice-wrap{
}

.reservation-notice__title{
  font-size: 1.7rem;
  font-weight: 600;
  margin: 0 0 14px 0;
}
.reservation-notice{
  background: #f5f5f5;
  border-radius: 10px;
  padding: 28px 32px;
}

.reservation-notice__inner{
  display: flex;
  flex-direction: column;
  gap: 22px;
}

.reservation-notice__section h3{
  font-size: 1.6rem;
  margin: 0 0 8px 0;
  font-weight: 600;
}

.reservation-notice__section p{
  margin: 4px 0;
  line-height: 1.7;
}

.reservation-notice__section ul{
  margin: 0;
  padding-left: 4px;
}

.reservation-notice__section li{
  margin-bottom: 4px;
  line-height: 1.7;
    position: relative;
    padding-left: 1.5rem;
}    
.reservation-notice__section li::before {
        content: "";
        position: absolute;
        left: 0;
        top: 0.6em;
        width: 8px;
        height: 8px;
        background: #bababa;
        border-radius: 50%;
    }
    
   
    
    
    
    
/* 診療時間表（科目別2種類） */
.clinic-hours-section {
}

.clinic-hours-section__title {
    font-size: 1.6rem;
    font-weight: 600;
    color: #f1f8ff;
    /* margin-bottom: 7px; */
    padding: 12px 12px;
    /* border: 1px solid #b7cce1; */
    text-align: center;
    background: #2264a5;
}

.clinic-hours-section .hours-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 1.6rem;
}

.clinic-hours-section .hours-table th,
.clinic-hours-section .hours-table td {
  border: 1px solid #ddd;
  text-align: center;
	line-height: 1.2;
    width: 11%;
}

.clinic-hours-section .hours-table thead th {
    background: #003f73;
    font-weight: 500;
    color: #fff;
    padding: 10px 0;
    font-size: 2rem;
}

.clinic-hours-section .hours-table .time {
    background: #f7f7f7;
    font-weight: 600;
    text-align: center;
    width: 23%;
    height: 100px;
    padding: 20px 0;
    font-size: 2rem;
            vertical-align: middle;
}

.clinic-hours-section .hours-table .open {
  color: #1e3043;
  font-size: 1.8rem;
  line-height: 1.5;
}
.clinic-hours-section .hours-table .open .notes {
  color: #1e3043;
  font-size: 1.5rem;
  line-height: 1.5;
}
.clinic-hours-section .hours-table .closed {
  color: #999;
}

.clinic-hours-section__notes {
  margin-top: 10px;
  font-size: 1.6rem;
  color: #c00;

}

.clinic-hours-section__notes p {
  margin: 0 0 1rem;
}

.clinic-hours-section__notes .note-special {
    color: #1e3043;
    font-size: 1.6rem;
    
            width: 100%;
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        flex-direction: column;
}
.clinic-hours-section__notes .note-special li{
        width: 100%;
        padding-left: 1.5em;
        text-indent: -1.5em;
        line-height: 1.5;
        margin: 0 0 1rem 0;
    }
.clinic-hours-section__notes .note-special li::before {
        content: "■";
        margin: 0 .5em 0 0;
    }
/* スマホ用固定フッター - 非表示（新しいフッターに置き換え） */
.sp-fixed-footer {
  display: none;
}
    
    
    
  .web-reservation-banner-pc {
    display: block;
  }
  .sp-fixed-footer {
    display: none;
  }
  .sp-fixed-footer-new {
    display: none;
  }         
    
}
/* PC */





/* sp */
@media screen and (max-width:750px) {

.wrapper{
padding: 0 0 6rem 0;
}

.site-strapline {
display: none;
}

/* header */

header{
width: 100%;
display: flex;
align-items: center;
flex-wrap: wrap;
height: 6rem;
position: fixed;
top: 0;
z-index: 100;
background: #fff;
}

.header1{
width: calc(100%);
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}

.header2{
width: 100%;
margin: 0 auto;
}

.header2 h1{
        width: calc(100% - 6rem);
        height: 5rem;
        text-align: center;
        display: flex;
        margin: 0 6rem 0 auto;
        justify-content: center;
        align-items: center;
}

.header2 h1 a{
display: flex;
}

.header2 h1 a img{
height: 4rem;
width: auto;

}

.header3{
display: none;
width:100%;
margin: 0 auto;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
text-align: center;
}

.header4{
width: 100%;
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: center;

}

.header5{
width: 100%;
text-align: center;
}

.header5 span{
text-align: center;
font-size: 1.4rem;
}

.header6 a{
display: block;
font-size: 2.5rem;
line-height: 1;
width: 20rem;
}

.header6 a span::before{
background: url("../images/ic_tel.svg");
display: inline-block;
width: 1.8rem;
height: 1.8rem;
margin: 0 .2rem 0 0;
vertical-align: middle;
}

.header7{
width: 100%;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: center;
}

.header8{
width: 100%;
text-align: center;
}

.header8 span{
text-align: center;
font-size: 1.4rem;
width: 9rem;
}

.header9 a{
display: block;
font-size: 2.5rem;
line-height: 1;
color: #63c06b;
width: 20rem;
}

.header9 div{
display: block;
font-size: 2.5rem;
line-height: 1;
color: #63c06b;
width: 20rem;
}

.header9 a span::before{
background: url("../images/ic_tel.svg");
display: inline-block;
width: 1.8rem;
height: 1.8rem;
margin: 0 .2rem 0 0;
vertical-align: middle;
}

.header10{
width: 100%;
text-align: center;
}

.header10 a{
display: inline-block;
background: linear-gradient(270deg, #2fb383, #18a86b);
text-align: center;
color: #fff;
box-shadow: 6px 6px 10px #c1ffe8;
}

.header10 a span{
display: block;
position: relative;
width: 100%;
padding: 1.2rem 3rem;
}

.header10 a span::after{
position: absolute;
top: 2.7rem;
right: .8rem;
content: "";
background: url("../images/ic_arrow1.svg");
display: inline-block;
width: 1.2rem;
height: 1.2rem;
margin: 0 0 0 .6rem;
vertical-align: baseline;
}

.footer__w .header10 a span::after{
position: absolute;
top: 1.9rem;
right: .8rem;
content: "";
background: url("../images/ic_arrow1.svg");
display: inline-block;
width: 1.2rem;
height: 1.2rem;
margin: 0 0 0 .6rem;
vertical-align: baseline;
}

.header11{
font-size: 1.2rem;
}

.header12{
width: calc(100% - 60px);
font-size: 1.2rem;
margin: 0.5rem auto 1.2rem;
text-align: center;
letter-spacing: 0;
}

.header13{
width: 100%;
}

.header13 a {
display: inline-block;
background: #d87d97;
text-align: center;
padding: 1.5rem 5rem;
color: #fff;
font-size: 1.6rem;
letter-spacing: .2rem;
position: relative;
border-radius: 4px;
width: 20rem;
}

.header13 div {
display: inline-block;
background: #d87d97;
text-align: center;
padding: 1.5rem 1.5rem;
color: #fff;
font-size: 1.6rem;
letter-spacing: .2rem;
position: relative;
border-radius: 4px;
width: 20rem;
}

.header13 a:after {
content: '';
position: absolute;
top: 0;
bottom: 0;
right: 2rem;
background: url("../images/ic_arrow1.svg");
display: inline-block;
width: 1rem;
height: 1rem;
margin: auto;
vertical-align: baseline;
transition: all .3s;
}

.header14{
text-align: center;
width: 100%;
font-size: 1.4rem;
color: #404040;
}


/* header */


/* nav */

/*========= ナビゲーションのためのCSS ===============*/

#g-nav{
position: fixed;
z-index: -1;
display: none;
top: 0;
width: 100%;
height: 100vh;
background: #f4f7f7;
transition: all 0.3s;
}

/*アクティブクラスがついたら透過なしにして最前面へ*/
#g-nav.panelactive{
display: block;
z-index:999;
overflow-y: auto;
margin-bottom: 5rem;
}

/*ナビゲーションの縦スクロール*/
#g-nav.panelactive #g-nav-list{
/*ナビの数が増えた場合縦スクロール*/
position: fixed;
z-index: 999; 
width: 100%;
height: 100vh;/*表示する高さ*/
overflow: auto;
-webkit-overflow-scrolling: touch;
}

/*ナビゲーション*/
#g-nav .navul,
#g-nav .navul2 {
display: none;
/*ナビゲーション天地中央揃え*/
z-index: 999;
}

#g-nav.panelactive .navul {
    width: 90%;
    display: flex !important;
    flex-wrap: wrap;
    justify-content: space-between;
    margin: 6rem auto 0;
}

/*リストのレイアウト設定*/
.navulli1,
.navulli2,
.has-child{
list-style: none;
text-align: center;
width: 48%;
margin: 0 0 1.5rem 0;
}

.navulli1,
.navulli2{
margin: 0 0 1.5rem 0;
}

.navulli1 a,
.navulli2 a,
.has-child a{
    text-decoration: none;
    padding: .7rem 0;
    display: block;
    font-weight: 500;
    font-size: 1.5rem;
    border-radius: 5px;
    width: 100%;
    margin: 0 auto;
}

.navulli1 a span,
.has-child > a span
{
    display: block;
    position: relative;
    padding-left: 2.5rem;
}
.navulli1 a span::before,
.has-child > a span::before{
    content: "▲";
    position: absolute;
    top: 50%;
    left: 1rem;
    display: inline-block;
    font-size: .8rem;
    margin: auto;
    transition: all .3s;
    transform: translateY(-50%) rotate(90deg);
    color: #4b7abe;
}


#g-nav.panelactive .has-child-3{
width: 100%;
display: none !important;
flex-wrap: wrap;
justify-content: flex-start;
margin: .5rem auto 0;
}

#g-nav.panelactive .navulli2{
width: 100%;
margin: 0 0 .5rem 0;
align-items: center;
display: flex;
}

#g-nav.panelactive .navulli2:nth-child(2n){
}

#g-nav.panelactive .navulli2 a{
font-size: 1.3rem;
line-height: 1.2;
padding: .5rem 1rem;
display: block;
width: 100%;
letter-spacing: -0.05rem;
background: #fff;
}

#g-nav.panelactive .navulli2 img{
width: 100%;
border-radius: 10px 3px 10px 3px;
}

.has-child-2{
width: 100%;
display: flex;
flex-wrap: wrap;
}

.has-child-3{
width: 100%;
display: flex;
flex-wrap: wrap;
}


/*========= ボタンのためのCSS ===============*/
.openbtn{
position: fixed;
z-index: 9999;
top: .55rem;
right: 1rem;
cursor: pointer;
width: 4rem;
height: 5rem;
}

/*×に変化*/	
.openbtn span{
display: inline-block;
transition: all .4s;
position: absolute;
left: 0;
height: 3px;
border-radius: 2px;
background-color: #00967f;
width: 100%;
}

.active span{
display: inline-block;
transition: all .4s;
position: absolute;
height: 3px;
border-radius: 2px;
background-color: #00967f !important;
width: 100%;
}

.openbtn span:nth-of-type(1) {
top:1rem;	
}

.openbtn span:nth-of-type(2) {
top:2.2rem;
}

.openbtn span:nth-of-type(3) {
top:3.4rem;
}

.openbtn.active span:nth-of-type(1) {
top: 1.5rem;
left: 0;
transform: translateY(6px) rotate(-45deg);
width: 100%;
}

.openbtn.active span:nth-of-type(2) {
opacity: 0;
}

.openbtn.active span:nth-of-type(3){
top: 2.7rem;
left: 0;
transform: translateY(-6px) rotate(45deg);
width: 100%;
}


.spnavinfo__w{
width: 100%;
display: flex;
flex-wrap: wrap;
align-content: center;
}

.menu-new{
font-size: 1rem;
vertical-align: top;
padding-left: .3rem;
color: #B60000;
font-family: "Hiragino Mincho ProN", "YuMincho", "Yu Mincho", "MS PMincho", serif;
font-weight: 500;
}

.has-child:nth-last-child(1) a{/*赤いNEWの文字の分を調整（NEWの文字を削除したらこれのcssも削除）*/
padding-left: 2em;
}

.spnav_tel{
width: 100%;
text-align: center;
margin-bottom: 3rem;
}

.spnav_tel a{
display: inline-block;
font-size: 2.4rem;
font-weight: 500;
}


.spnav_tel a::before {
content: "";
background: url("../images/ic_tel.svg");
width: 1.7rem;
height: 1.7rem;
display: inline-block;
margin-right: .3rem;
vertical-align: middle;
}

.spnav_timetable{
width: 100%;
padding: 0 2rem;
}


/* nav */


/* pagetop */


#page-top {
position: fixed;
bottom: 5rem;
right: 0.8rem;
z-index: 2;    
}
#page-top a {
width: 4rem;
display: block;
opacity: 0.9;
transition: all .3s ease;
}
#page-top a:hover {
text-decoration: none;
opacity: .5;
}


#page-top a img{
width: 100%;
display: block;
opacity: .8;
}


/* pagetop */
























/* subpage */
.subpagetitle__w {
width: 100%;
position: relative;
padding: 5vw 0;
margin-top: 6rem;
}
.subpagetitle__w::after {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.subpagetitle__w1 {
background: url(../images/subpagetitle.jpg) left 100% no-repeat;
background-size: cover;
}
.subpagetitle__w2 {
background: #ebd5c8 url(../images/subpagetitle2.jpg) left center no-repeat;
background-size: cover;
}
.subpagetitle__w3 {
background: #ebd5c8 url(../images/subpagetitle3.jpg) left center no-repeat;
background-size: cover;
}
.subpagetitle__w4 {
background: #ebd5c8 url(../images/subpagetitle4.jpg) left center no-repeat;
background-size: cover;
}
.subpagetitle__w5 {
background: #ebd5c8 url(../images/subpagetitle5.jpg) left center no-repeat;
background-size: cover;
}
.subpagetitle1 {
text-align: center;
position: relative;
}
.subpagetitle1 h2 {
font-size: 2.0rem;
letter-spacing: .3rem;
color: #003f73;
line-height: 1.2;
display: inline-block;
border-radius: 5px;
width: 100%;
position: relative;
}
.subpagetitle1 h2::before {
content: "";
background: url(../images/ic_h2.svg) no-repeat;
width: 3rem;
height: 3rem;
margin: 0 auto;
display: inline-block;
}
.subpagetitle1 h2 span {
display: block;
}
.subpagetitle1 h2 span::after {
display: block;
position: relative;
text-align: center;
font-size: 1.3rem;
letter-spacing: .2rem;
color: #77bbf4;
font-weight: 500;
line-height: 1;
margin: .5rem 0 0 0;
}
.subpagetitle1a h2 span::after {
content: "MEDICAL";
}
.subpagetitle1b h2 span::after {
content: "DOCTOR";
}
.subpagetitle1c h2 span::after {
content: "FACILITY";
}
.subpagetitle1d h2 span::after {
content: "RESERVATION";
}
.subpagetitle1e h2 span::after {
content: "FACILITY　STANDARD";
}
.subpagetitle1f h2 span::after {
content: "INFORMATION";
}
.subpagetitle1g h2 span::after {
content: "APPOINTMENT";
}
.subpagetitle1h h2 span::after {
content: "ACCESS";
}
.subpagetitle1i h2 span::after {
content: "COSMETICs";
}
.subpagetitle1j h2 span::after {
content: "PRICE";
}
.subpagetitle1k h2 span::after {
content: "FAQ";
}
.subpagetitle1l h2 span::after {
content: "FACILITY-STANDARDS";
}
.subpagetitle2 {
width: 100%;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.subpagetitle3 {
width: 90%;
background: #fff;
padding: 2vw;
border-radius: 30px 10px 30px 10px;
margin: 0 auto;
}
.subpagetitle4 {
width: 100%;
}
.subpagetitle4 img {
border-radius: 30px 10px 30px 10px;
}
.subpage__w {
width: 100%;
background: #f0f7ff;
padding: 3rem 0;
}
.subpage1 {
width: 95%;
margin: 0 auto 0;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
background: #fff;
padding: 3rem 2rem;
box-shadow: 0 0 20px rgb(75 122 190 / 10%);
border-radius: 10px;
}
.subpage2, .subpage2b {
width: 100%;
margin: 0 0 3rem 0;
}
.subpage2 h2 {
font-size: 2.4rem;
letter-spacing: .1rem;
line-height: 1;
text-align: center;
border-bottom: 10px solid #f7f7f7;
padding: 0 0 5vw 0;
font-weight: 500;
font-family: YakuHanMP, "Zen Maru Gothic", sans-serif;
}
.subpage2b h2 {
font-size: 2.0rem;
letter-spacing: .1rem;
line-height: 1;
text-align: center;
color: #f08300;
border-bottom: 10px solid #f7f7f7;
padding: 0 0 5vw 0;
}
.subpage3 {
width: 100%;
padding: 0 1vw;
line-height: 1.8;
}
.subpage3 h4 {
font-size: 1.5rem;
letter-spacing: .04rem;
line-height: 1.2;
padding: 0 0 2vw;
font-weight: 500;
}
.subpage4 {
width: 100%;
}

.subpage5 {
width: 100%;
position: relative;
padding: 5vw 5vw;
background: #f5f5f5;
border-radius: 10px;
}
.subpage5 ul {
width: 100%;
list-style: none;
}
.subpage5 ul li {
width: 100%;
line-height: 1.8;
margin: 0 0 2vw 0;
}
.subpage5 ul li:last-child {
margin: 0 0 0 0;
}
.subpage5 ul li span {
width: 100%;
}
.subpage5 ul li span::before {
content: "";
display: inline-block;
background: url("../images/ic_check.svg");
width: 1.6rem;
height: 1.6rem;
margin: 0 1vw 0 0;
vertical-align: sub;
}
.subpage6 {
width: 100%;
padding: 5vw 5vw;
position: relative;
background: #f5f5f5;
border-radius: 10px;
}
.subpage6 ul {
width: 100%;
}
.subpage6 ul li {
width: 100%;
line-height: 1.6;
margin: 0 0 2vw 0;
padding-left: 2.2rem;
text-indent: -2.2rem;
}
.subpage6 ul li:last-child {
margin: 0 0 0 0;
}
.subpage6 ul li span {
width: 100%;
}
.subpage6 ul li span::before {
content: "";
display: inline-block;
background: url("../images/ic_check2.svg");
width: 1.6rem;
height: 1.6rem;
margin: 0 1vw 0 0;
vertical-align: sub;
}
.subpage7 {
width: 100%;
}
.subpage7 ul {
width: 100%;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.subpage7 ul li {
width: 48%;
margin: 0 0 4vw 0;
}
.subpage7 ul li:last-child {
margin: 0 0 0 0;
}
.subpage7 ul li a {
display: block;
width: 100%;
margin: 0 auto;
background: #7cc739;
padding: 2vw 0;
text-align: center;
letter-spacing: -.005rem;
color: #fff;
box-shadow: 6px 6px 15px #ebebeb;
font-weight: 500;
font-size: 1.4rem;
line-height: 1.4;
position: relative;
border-radius: 3px;
}
.subpage7 ul li a:hover {
transform: translateY(-3px);
opacity: .5;
}
.subpage7 ul li a span {
width: 100%;
display: block;
text-align: center;
}
.subpage7 ul li span::after {
content: "";
background: url("../images/ic_arrow4.svg");
display: block;
width: 1.2rem;
height: 1.2rem;
transform: rotate(90deg);
opacity: .9;
margin: 1.5vw auto 0;
}
.subpage8{
width: 100%;
}
.subpage8 h3{
font-size: 1.8rem;
letter-spacing: .02rem;
line-height: 1.2;
padding: .3rem 0 .3rem 1.4rem;
margin: 0 0 2rem;	
position: relative;
font-weight: 500;
}
.subpage8 h3::before{
border-left: 4px solid #2762a9;
content: "";
height: 100%;
left: 0;
position: absolute;
top: 0;
border-radius: 10px;	
}
.subpage9 {
width: 80%;
margin: 0 auto;
}
.subpage9 img {
width: 100%;
border-radius: 10px;
}
.subpage10 {
width: 100%;
background: #F5F5F5;
position: relative;
padding: 5vw;
border-radius: 0;
margin: 0 auto;
}
.subpage10 ul {
width: 100%;
}
.subpage10 ul li {
width: 100%;
line-height: 2.2;
}
.subpage10 ul li span {
width: 100%;
}
.subpage10 ul li span::before {
content: "";
display: inline-block;
background: url("../images/ic_check3.svg");
width: 1.6rem;
height: 1.6rem;
margin: 0 10px 0 0;
vertical-align: sub;
}
.subpage11 {
display: inline-block;
margin: -4.5rem 0 0 0;
background: #927ab9;
color: #fff;
text-align: center;
padding: 1.5vw 5vw;
border-radius: 3px;
position: absolute;
font-size: 1.6rem;
line-height: 1.2;
}
.subpage12 {
padding: 2vw 0 0 0;
font-size: 1.4rem;
line-height: 2;
}
.subpage13 {
display: inline-block;
margin: -4.5rem 0 0 0;
background: #1eaa39;
color: #fff;
padding: 1.5vw 3vw;
border-radius: 3px;
position: absolute;
font-size: 1.6rem;
line-height: 1.2;
}
.subpage14 {
display: inline-block;
margin: -4.5rem 0 0 0;
background: #7dadd4;
color: #fff;
text-align: center;
padding: 1.5vw 5vw;
border-radius: 3px;
position: absolute;
font-size: 1.6rem;
line-height: 1.2;
}
.subpage15 {
width: 100%;
line-height: 1.8;
}
.subpage16 {
width: 100%;
}
.subpage16 span {
line-height: 1.8;
font-size: 1.5rem;
font-weight: 700;
display: block;
padding: 1vw 3vw;
letter-spacing: 0.1rem;
background: #fff;
color: #213546;
border-left: 10px solid #7dadd4;
}
.subpage17 {
width: 100%;
}
.subpage17 span {
line-height: 1.8;
font-size: 1.5rem;
font-weight: 700;
display: inline-block;
padding: 1vw 4vw;
letter-spacing: .1rem;
background: #ffffff;
border-bottom: 1px solid #47c8af;
}
.subpage18 {
width: 100%;
}
.subpage19 {
width: 100%;
position: relative;
padding: 30px 30px;
background: #f5f5f5;
border-radius: 10px;
}
.subpage19 ul {
width: 100%;
}
.subpage19 ul li {
width: 100%;
line-height: 2;
margin: 0 0 5px 0;
}
.subpage19 ul li:last-child {
margin: 0 0 0 0;
}
.subpage19 ul li span {
width: 100%;
}
.subpage19 ul li span::before {}
.subpage20 {
display: inline-block;
margin: -5.5rem 0 0 0;
background: #fbfdd5;
color: #25cf40;
text-align: center;
padding: 2vw 5vw;
border-radius: 3px;
position: absolute;
font-size: 1.6rem;
line-height: 1.4;
border: 2px solid #25cf40;
font-weight: 700;
}
.subpage21::before {
content: "";
display: inline-block;
background: url("../images/ic_check4.svg");
width: 2rem;
height: 2rem;
margin: 0 10px 0 0;
vertical-align: sub;
}
.subpage22 {
display: inline-block;
margin: -5.5rem 0 0 0;
background: #0ba524;
color: #fff;
text-align: center;
padding: 2vw 5vw;
border-radius: 3px;
position: absolute;
font-size: 1.6rem;
line-height: 1.4;
}
.subpage23::before {
content: "";
display: inline-block;
background: url("../images/ic_check5.svg");
width: 2rem;
height: 2rem;
margin: 0 1vw 0 0;
vertical-align: sub;
}
.subpage24 {
width: 100%;
margin: 0 auto 3vw;
text-align: center;
}
.subpage24 a {
display: inline-block;
background: linear-gradient(90deg, #1ea189, #0cbd7c);
text-align: center;
font-size: 1.4rem;
font-weight: 500;
color: #fff;
border-radius: 200px;
line-height: 1;
padding: 3vw 7vw;
box-shadow: 7px 7px 20px #9ff4c2;
letter-spacing: .05rem;
}
.subpage24 a span::before {
content: "";
background: url("../images/ic_arrow1.svg") no-repeat;
display: inline-block;
width: 1.3rem;
height: 1.3rem;
margin: 0 1.5vw 0 0;
vertical-align: middle;
}
.subpage25 {
width: 100%;
font-size: 1.6rem;
padding: 6vw 3vw;
background: #f1fff6;
}
.subpage26 {
display: inline-block;
padding: 0 0 0 5vw;
}
.subpage26::first-letter {
color: #009f88;
display: inline-block;
font-weight: 900;
font-size: 2.2rem;
margin: 0 1vw 0 0;
}
.subpage27 {
display: inline-block;
padding: 0 0 0 8vw;
}
.subpage27::first-letter {
color: #00a341;
display: inline-block;
font-weight: 900;
font-size: 2.2rem;
margin: 0 1vw 0 0;
}
.subpage28 {
display: inline-block;
padding: 0 0 0 12vw;
}
.subpage28::first-letter {
color: #36a34b;
display: inline-block;
font-weight: 900;
font-size: 2.2rem;
margin: 0 1vw 0 0;
}
.subpage29 {
width: 100%;
}
.subpage29 span {
line-height: 1.8;
font-size: 1.4rem;
font-weight: 500;
display: inline-block;
padding: .5vw 5vw;
letter-spacing: .1rem;
background: #ffffff;
border: 1px solid #7cb1db;
color: #499de1;
border-radius: 200px;
}
.subpage30 {
width: 100%;
padding: 4vw 4vw;
display: flex;
flex-wrap: wrap;
background: #fffee7;
border-radius: 5px;
}
.subpage31 {
width: 100%;
color: #e95446;
margin: 0 0 2vw 0;
font-size: 1.7rem;
text-align: center;
}
.subpage32 {
width: 100%;
font-size: 1.3rem;
color: #4a2811;
line-height: 1.5;
}
.subpage33 {
width: 100%;
text-align: center;
}
.subpage34 {
width: 100%;
}
.subpage34 span {
display: block;
padding: 3vw 4vw;
color: #ffffff;
font-size: 1.8rem;
font-weight: 500;
margin: 0 0 5vw 0;
background: linear-gradient(90deg, #009f88, #3f9fcb);
border-radius: 3px 13px 3px 13px;
line-height: 1.5;
}
.subpage35 {
width: 100%;
}
.subpage35 img {
width: 100%;
border-radius: 3px;
}
.subpage36 {
width: 100%;
position: relative;
padding: 30px 30px;
background: #f5f5f5;
border-radius: 10px;
}
.subpage36 ul {
width: 100%;
}
.subpage36 ul li {
width: 100%;
line-height: 2;
margin: 0 0 5px 0;
}
.subpage36 ul li:last-child {
margin: 0 0 0 0;
}
.subpage36 ul li span {
width: 100%;
}
.subpage36 ul li span::before {
content: "";
display: inline-block;
background: url("../images/ic_cross.svg");
width: 2rem;
height: 2rem;
margin: 0 10px 0 0;
vertical-align: sub;
}
.subpage37 {
display: inline-block;
margin: -4.5rem 0 0 0;
background: #ef506b;
color: #fff;
padding: 1.5vw 3vw;
border-radius: 3px;
position: absolute;
font-size: 1.6rem;
line-height: 1.2;
}
.subpage38 {
width: 100%;
margin: 0 0 3vw 0;
padding: 2vw 3vw;
font-size: 1.8rem;
font-weight: 700;
color: #009f88;
border-bottom: 1px solid #e5e5e5;
}
.subpage39 {
width: 100%;
margin: 0 0 2vw 0;
padding: 0 0 0 2vw;
}
.subpage39 span {
display: inline-block;
text-align: center;
padding: 1vw 5vw;
border-radius: 200px;
font-size: 1.5rem;
color: #009f88;
font-weight: 700;
border: 1px solid #009f88;
}
.subpage40 {
width: 100%;
font-size: 2.5rem;
padding: 0 0 0 6vw;
font-weight: 700;
}
.subpage41 {
font-size: 1.5rem;
font-weight: 400;
display: inline-block;
margin: 0 0 0 1vw;
}
.subpage42 {
font-size: 1.4rem;
font-weight: 500;
padding: 0 0 0 6vw;
width: 100%;
}
.subpage43 {
width: 100%;
display: flex;
flex-wrap: wrap;
}
.subpage44 {
width: 100%;
margin: 0 0 2vw 0;
}
.subpage44 span {
display: inline-block;
background: #009f88;
color: #fff;
padding: .5vw 1.5vw;
border-radius: 3px;
margin: 0 2vw 0 0;
}
.subpage45 {
width: 100%;
margin: 0 0 3vw 0;
}
.subpage45:last-child {
margin: 0 0 0 0;
}
.subpage45 span {
display: inline-block;
background: #fff;
color: #009f88;
padding: .5vw 1.5vw;
border-radius: 3px;
margin: 0 2vw 0 0;
border: solid 1px #009f88;
}
.subpage46 {
width: 100%;
margin: 0 auto;
}
.subpage46 img {
width: 100%;
}
.subpage47 {
width: 100%;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
}
.subpage48 {
text-align: center;
font-size: 2rem;
width: 100%;
color: #009f88;
letter-spacing: .2rem;
font-weight: 500;
margin: 0 0 6vw 0;
}
.subpage49 {
font-size: 2.2rem;
font-weight: 900;
color: #009f88;
letter-spacing: .05rem;
line-height: 1.4;
}
.subpage50 {
width: 100%;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
}
.subpage51 {
width: 100%;
padding: 2vw 4vw;
background: #f4f0e1;
margin: 0 0 4vw 0;
font-size: 1.4rem;
font-weight: 700;
border-radius: 3px;
color: #3c2f19;
}
.subpage52 {
width: 100%;
}
.subpage53 span {
font-size: 1.4rem;
background: #fff;
padding: 1vw 2vw;
color: #eb7777;
border-radius: 5px;
display: inline-block;
font-weight: 700;
border: solid 1px #eb7777;
line-height: 1.3;
}
.subpage54 {
width: 100%;
color: #eb7777;
font-size: 1.5rem;
margin: 0 0 1vw 0;
}
.subpage55 {
width: 100%;
font-size: 1.3rem;
color: #383618;
line-height: 1.5;
}
.subpage56 {
width: 100%;
}
table.subpage57 {
width: 100%;
}
table.subpage57 th {
display: block;
}
table.subpage57 td {
display: block;
}
.subpage58 {
width: 100%;
vertical-align: middle;
padding: 2vw 2vw;
background: #f6f6f6;
font-size: 1.4rem;
line-height: 1.4;
}
.subpage59 {
width: 100%;
padding: 1vw 2vw;
vertical-align: middle;
font-size: 1.3rem;
}
.subpage60 {
width: 100%;
padding: 0 2vw 1vw;
vertical-align: middle;
font-size: 1.4rem;
font-weight: 700;
border-bottom: 1px solid #e9e9e9;
text-align: right;
}
.subpage61 {
font-size: 1.2rem;
font-weight: 500;
display: inline-block;
background: #fff;
padding: .2vw 2vw;
text-align: center;
color: #4a6396;
margin: 1vw 0 0 0;
border: 1px solid #c5cddd;
}
.subpage62 {
width: 100%;
margin: 0 0 10px 0;
}
.subpage62 a {
display: block;
width: 100%;
background: #fff;
padding: 2vw 2vw;
font-size: 1.4rem;
line-height: 1.3;
}
.subpage62 a span {
display: inline-block;
color: #5779bc !important;
}
.subpage62 a span::before {
content: "";
display: inline-block;
margin: 0 10px 0 0;
background: url("../images/ic_link.svg");
width: 1.5rem;
height: 1.5rem;
}
.subpage63 {
display: inline-block;
margin: -4.5rem 0 0 0;
background: #47c8af;
color: #fff;
padding: 2vw 3vw;
border-radius: 3px;
position: absolute;
font-size: 1.6rem;
line-height: 1.2;
width: 88%;
}
.subpage64 {
width: 100%;
}
.subpage64 img {
width: 100%;
border-radius: 3px;
}
.subpage65 {
width: 100%;
text-align: center;
}
.subpage65 img {
width: 70%;
border-radius: 3px;
}
.subpage66 {
width: 100%;
vertical-align: middle;
padding: 2vw 2vw;
background: #f6f6f6;
}
.subpage67 {
width: 100%;
padding: 1vw 2vw;
vertical-align: middle;
font-size: 1.3rem;
}
.subpage68 {
width: 100%;
padding: 1vw 2vw;
vertical-align: middle;
border-bottom: 1px solid #e9e9e9;
}
.subpage69 {
width: 100%;
display: flex;
justify-content: flex-end;
flex-wrap: wrap;
align-items: center;
margin: 0 0 2vw 0;
}
.subpage69:last-child {}
.subpage70 {
width: 10rem;
display: inline-block;
padding: 0 1vw;
text-align: center;
border: 1px solid #059f88;
margin: 0 2vw 0 0;
background: #059f88;
color: #fff;
border-radius: 2px;
font-size: 1.3rem;
font-weight: 700;
}
.subpage71 {
width: 8rem;
margin: 0 0 0 0;
text-align: right;
}
.subpage72 {
width: 100%;
text-align: center;
}
.subpage72 a {
width: 100%;
text-align: center;
display: block;
}
.subpage72 a img {
width: 100%;
box-shadow: 5px 5px 10px #c7f5d1;
}
/* subpage */









/* dooctor */
.doctor1 {

width: 100%;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.doctor2 {
width: 100%;
text-align: center;
margin: 3rem 0 3rem 0;
}
.doctor2 img {
width: 90%;
border-radius: 3px;
}
.doctor3 {
width: 90%;
display: flex;
flex-wrap: wrap;
padding: 3rem 1rem;
background: #fff;
justify-content: center;
align-items: center;
border-radius: 10px;
margin: 0 auto;
}

.doctor4 {
font-size: 2.2rem;
line-height: 1.4;
width: 100%;
letter-spacing: .5rem;
text-align: center;

}
.doctor5 {
font-size: 2.4rem;
width: 100%;
text-align: center;
font-weight: 600;
}
.doctor6 {
font-size: 1.4rem;
text-align: center;
width: 100%;
letter-spacing: .3rem;
}
.doctor7 {
width: 100%;
margin-bottom: 1.5rem
}
.doctor7 h3 {
font-size: 2.2rem;
text-align: center;
/*font-family: YakuHanMP, "Kosugi Maru", sans-serif;*/
letter-spacing: .2rem;
}
.doctor8 {
background: #fff;
border-radius: 10px;
padding: 3rem;
width: 90%;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.doctor9 {
width: 100%;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.doctor10 {
margin: 2rem auto 0;
padding: 1rem 5rem;
background: #d3e8fa;
border-radius: 10px;
text-align: center;
}
.doctor11 {
width: 100%;
margin-bottom: 1.5rem
}
.doctor11 h3 {
font-size: 2.2rem;
text-align: center;
letter-spacing: .2rem;
}
.doctor12 {
background: #fff;
border-radius: 10px;
padding: 3vw 5vw;
width: 90%;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.doctor13 {
width: 100%;
color: #323232;
font-weight: 400;
}
.doctor14 {
width: 100%;
}
.doctor15 {
width: 100%;
}
.doctor16 {
background: #fff;
border-radius: 10px;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
line-height: 2;
}
.doctor16 ul	{
list-style: none
}
.doctor17 {
width: 100%;
font-size: 2.2rem;
color: #36a34c;
font-weight: 500;
text-align: center;
margin: 0 0 2rem 0;
line-height: 1.6;
}
.doctor17b {
width: 100%;
font-size: 2.2rem;
color: #2762a9;
font-weight: 500;
text-align: center;
margin: 0 0 2rem 0;
line-height: 1.6;
}
.doctor18 {
width: 100%;
}
.doctor19 {
width: 90%;
margin: 0 auto;
font-size: 1.2rem;
}
ul.drhistory {
display: flex;
flex-flow: row wrap;
padding: 0 0 10px 0;
flex-direction: column;
list-style: none
}
ul.drhistory li:first-child {
display: block;
color: #323232;
font-weight: 400;
width: 100px;
}
ul.drhistory li:nth-child(2) {
color: #333;
}

ul.draward {
display: flex;
flex-flow: row wrap;
padding: 0 0 10px 0;
flex-direction: column;
list-style: none
}
ul.draward li:first-child {
display: block;
color: #323232;
font-weight: 400;
width: 100px;
}
ul.draward li:nth-child(2) {
color: #333;
overflow-wrap: break-word;
word-break: normal;
hyphens: auto    
}    
/* dooctor */






/*dermatology*/
.tbl_w table {
border-collapse: collapse;
width: 100%;
background-color: #fff;
font-size: 1.4rem;
}

.tbl_w th, td {
border-bottom: 1px solid #d1edd0;
padding: 1rem;
text-align: left;
vertical-align: middle;
}

.tbl_w th {
background-color: #2da845;
font-weight: bold;
text-align: center;
color: #ffffff;
}

.tbl_w tr:nth-child(even) {
background-color: #eef7f0;
}		
.about1 {
width: 100%;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.about2 {
width: 48%;
background: #F7F7F7;
border-radius: 10px;
margin: 0 0 2rem 0;
}
.about2:last-child,
.about2:nth-last-child(2){
margin: 0;
}     
.about3 {
width: 100%;
}
.about3 img {
width: 100%;
border-radius: 10px 10px 0 0;
}
.about4 {
width: 100%;
padding: 2rem 1rem;
margin: 0 0 0 0;
line-height: 1.4;
text-align: center;
}
.about5 {
width: 100%;
padding: 0 2vw;
margin: 0 0 3vw 0;
font-size: 1.3rem;
letter-spacing: 0;
line-height: 1.5;
}
.about6 {
width: 100%;
margin: 0 auto 50px;
background: #fffbd8;
border-radius: 5px;
padding: 3vw 4vw;
}
.about6 ul li {
width: 100%;
margin: 1vw auto 1vw;
padding-left: 1em;
text-indent: -1em;
}
/* about */
/*dermatology*/















/* access */
.access__w {
width: 100%;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.access1 {
width: 100%;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
margin: 0 0 4rem 0;
}
.access2 {
width: 100%;
text-align: center;
}
.access2 img {
width: 100%;
display: block;
border: solid 1px #E3E9ED;
border-radius: 6px;
}
.access3 {
width: 100%;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
text-align: center;
}
.access4 {
width: 100%;
font-weight: 700;
font-size: 1.4rem;
letter-spacing: 0.05;
}
.access5 {
width: 100%;
}
.access5 a {
width: 100%;
display: block;
font-size: 3rem;
color: #4b4948;
font-weight: 900;
line-height: 1;
}
.access5 a span {}
.access5 a span::before {
content: "";
background: url("../images/ic_tel.svg");
display: inline-block;
width: 2.2rem;
height: 2.2rem;
margin: 0 1.5vw 0 0;
vertical-align: bottom;
}
.access6 {
width: 100%;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.access7 {
width: 100%;
border-radius: 10px;
margin: 0 auto;
}
.access8 {
width: 100%;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: stretch;
margin: 0 0 1px 0;

}
.access8:first-child {}
.access8:last-child {}
.access9 {
width: 100%;
font-size: 1.6rem;
line-height: 1.2;
background: #2762a9;
padding: 1.5rem;
color: #fff;
border-radius: 3px;
}
.access10 {
width: 100%;
line-height: 1.5;
font-size: 1.6rem;
padding: 2rem 1.5rem;
background: #fafafa;
}
.access11 {
width: 100%;
}
.access12 {
width: 100%;
margin: 0 auto;
}
.access13 {
width: 100%;
}
.access14 {
width: 100%;
margin: 0 auto;
}
.access14 iframe {
width: 100%;
border-radius: 20px;
}
.access15 {
width: 100%;
font-weight: 500;
font-size: 1.6rem;
margin-bottom: .3rem;
}
.access16 {
width: 100%;
padding-left: 1em;
text-indent: -1em;
line-height: 1.5;
}
.access16::before {
content: "・";
}    
.access17 {
width: 100%;
font-size: 1.6rem;
line-height: 1.8;
}
.access18 {
width: 48%;
margin: 0 0 2vw;
}
.access18:last-child {
width: 48%;
margin: 0;
}
.access18 img {
width: 100%;
border-radius: 3px;
margin: 0 0 1vw;
}
.access18 span {
padding-left: 1em;
text-indent: -1em;
display: inline-block;
line-height: 1.5;
}
.access_route {
width: 100%;
margin: 0 0 2vw 0;
}
.access_route span {
display: inline-block;
padding: 0 2vw;
border: 1px solid #28634c;
background: #fff;
color: #28634c;
border-radius: 3px;
font-size: 1.5rem;
}
/* access */










/* footer */
footer{
width: 100%;
padding: 2rem 0;
background: #f9f9f9;   
}

.footer__w{
width: 95%;
        margin: 0 auto;
        padding: 0;
        display: flex;
        flex-direction: column;
        gap: 2.5rem;
}
/*
.footer1{
width: 100%;

}

.footer2{
width: 100%;
margin-top: .5rem;
margin-bottom: 2.5rem;
text-align: center;
}

.footer2 img{
width: 60%;
}

.footer3{
width: 100%;
font-size: 1.8rem;
margin-bottom: 1.5rem;
font-weight: 400;
}

.footer4{
width: 100%;
font-size: 1.5rem;
margin-bottom: 1rem;
font-weight: 400;
}

.footer5{
width: 100%;
margin: 1rem 0 3rem;
border-bottom: 1px solid #f4f2ed;
padding-bottom: 2rem;
}


.footer5 a{
display: inline-block;
font-size: 2.6rem;
font-weight: 500;
}


.footer5 a::before {
content: "";
background: url("../images/ic_tel.svg");
width: 1.8rem;
height: 1.8rem;
display: inline-block;
margin-right: .3rem;
vertical-align: middle;
}


.footer6 {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    line-height: 1.8;
    margin-top: 2rem;
}

.footer7{
width: 100%;
display: flex;
flex-wrap: wrap;
padding-left: 1rem;
}

.footer7 a{
font-size: 1.5rem;
margin-bottom: 1.2rem;
font-weight: 500;
}

.footer7 a span{
display:inline-block;
position: relative;
padding-left: 1rem;
}
.footer7 a span::before{
content: "▲";
position: absolute;
top: 0.2rem;
bottom: 0;
left: -1.4rem;
display: inline-block;
font-size: 1rem;
margin: auto;
transition: all .3s;
transform: rotate(90deg);
color: #4b7abe;
}



.footer7b{
width: 100%;
margin-top: 1rem;
}

.footer7b a{
display: inline-block;
text-align: center;
padding: .7rem 1.5rem;
border: 1px solid #4b7abe;
font-size: 1.3rem;
line-height: 1.6;
border-radius: 0;
color: #fff;
background: #4b7abe;
box-shadow: 5px 5px 5px #D5E7F7;
}






.footer8{
width: 100%;
margin: 0 0 3rem;
border-bottom: 1px solid #f4f2ed;
padding-bottom: 3rem;
}

.footer9{
width: 100%;
font-weight: 700;
font-size: 1.5rem;
margin-bottom: .5rem;
}

.footer10{
width: 100%;
font-size: 1.4rem;
margin-bottom: .7rem;
}


.footer10:last-child{
margin-bottom: 0;
}

.footer11{
width: 100%;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
padding-top: 2rem;
}

.footer12{
width: 100%;
margin-bottom: 1rem;
}

.footer12 img{
width: 100%;
}

.footer13{
width: 100%;
color: #F14D4D;
font-weight: 500;
padding-left: 1.5rem;
font-size: 1.3rem;
}



.footer14{
width: 100%;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}

.footer15{
width: 75%;
margin: 0 auto 3rem;
}

.footer15 img{
}

.footer16{
width: 100%;
text-align: center;
}

.footer16 img{
width: 7rem;
}

.footer17{
width: 100%;
padding-left: 1.5rem;
font-size: 1.3rem;
}

*/

    
    
    
    


/* =========================
   白ベタ共通
========================= */
.footer-card {
  background: #fff;
  border-radius: 10px;
  border: solid 1px #E3E9ED;
  padding: 3rem 2rem 2rem;
  gap: 10px;
  display: flex;
  flex-direction: column;
}

/* =========================
   タイトル
========================= */
.footer_ttl{
  text-align: center;
  position: relative;
  margin-bottom: 2rem;
  font-size: 2.4rem;
        letter-spacing: .2rem;
        font-weight: 500;
        line-height: 1.3;
  font-family: YakuHanMP, "Zen Maru Gothic", sans-serif;
}

.footer_ttl span{
  display: inline-block;
  position: relative;
  padding-bottom: 2rem;
}

/* 中央の短い下線 */
.footer_ttl span::after{
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 160px;
  height: 2px;
  background: #009cd3;
  transform: translateX(-50%);
}

/* 両端アクセント（短い線） */
.footer_ttl span::before{
          content: "";
        position: absolute;
        left: 50%;
        bottom: 0;
        width: 185px;
        height: 2px;
        transform: translateX(-50%);
        background: linear-gradient(#009cd3, #009cd3) left center / 8px 3px no-repeat, linear-gradient(#009cd3, #009cd3) right center / 8px 3px no-repeat;
    }
  
/* =========================
   診療時間
========================= */
.clinic-hours-section {
  width: 100%;
}

/* =========================
   アクセス 上段 左右
========================= */
.footer-access-top {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
  align-items: flex-start;
}

/* =========================
   アクセス文言（★ここ重要）
========================= */
.footer8 {
  width: 100%;
  margin: 0;
  border-bottom: none;
  padding-bottom: 0;
}

.footer9 {
  width: 100%;
  font-weight: 500;
  font-size: 1.6rem;
  margin-bottom: .3rem;
}

.footer10 {
  width: 100%;
  font-size: 1.6rem;
  line-height: 1.5;
        padding-left: 1em;
        text-indent: -1em;
}
    .footer10::before {
        content: "・";
    }
.footer10:last-child {
  margin-bottom: 0;
}
.footer11 {
     width: 100%;
         font-size: 1.6rem;
        line-height: 1.8;
}
/* ■ の色 */
.txt_blue {
  color: #009cd3;
  margin-right: .3rem;
}
    

/* =========================
   右側 地図画像
========================= */
.footer19 {
  width: 100%;
}

.footer19 img {
  width: 100%;
  height: auto;
  display: block;
  border: solid 1px #E3E9ED;
  border-radius: 6px;
}
    
/* =========================
   バナー
========================= */
    .footer-access-bnr {
  width: 300px;
        margin: 0 auto;
}
    .footer-access-bnr a {
  width: 100%;
  display: block;
  text-align: center;
  background: #009cd3;
  color: #ffffff;
  padding: 1.8rem;
  border-radius: 4px;
  position: relative;
  border: 1px solid #009cd3;
  font-weight: 500;
  box-shadow: 10px 10px 10px #ededed;

  transition: none;
}

.footer-access-bnr a:hover {
  background: #007fb0;
  border-color: #007fb0;
  color: #fff;
          opacity: 1;
}
.footer-access-bnr a span {
        display: inline-block;
        position: relative;
        padding: 0 0 0 1.5rem;
    }
.footer-access-bnr a span::before {
  content: "▲";
        position: absolute;
        top: .15rem;
        bottom: 0;
        left: -.75rem;
        display: inline-block;
        font-size: .7rem;
        transition: all .3s;
        transform: rotate(90deg);
        color: #ffffff;
}
/* =========================
   Google Map
========================= */
.footer-gmap {
}

.footer-gmap iframe {
  width: 100%;
  aspect-ratio: 16 / 9;
  height: auto;
  border: 0;
  display: block;
  border-radius: 8px;
}








.googlemaps__w{
width: calc(100% - 550px);
padding: 0 0 0 20px;
background: #f8f6ef;
}

.googlemaps__w iframe{
width: 90%;
height: 936px;
}
   



/* copyright */
/*
.copyright {
width: 100%;
padding: 5rem 0;
background: #2264a5;
text-align: center;
font-size: 2.2vw;
color: #DDE6F0;
margin: 0;
}
*/
    

    
    
    
    
    
    
/*common*/
.topaccess13 a:hover,
.header9 a:hover {
opacity: 1;
background: #bf5f7a;
border-radius: 4px;
}
.topaccess13 a:hover::after,
.header9 a:hover::after {
right: 1.6rem;
}


/* sp footer */

.spfooternav__w{
width: 100%;
display: flex !important;
justify-content: space-between;
position: fixed;
bottom: 0;
z-index: 10;
height: 7rem;

}

.spfooternav1{
width: calc(100% - 8rem);
display: flex;
align-items: center;
justify-content: center;
flex-wrap: wrap;
background: #fff;
font-weight: 500;
}

.spfooternav1 a{
font-size: 2.2rem;
display: flex;
align-items: center;
justify-content: center;
width: 100%;
font-weight: 500;
line-height: 1;
font-family: "Montserrat", sans-serif;
}

.spfooternav1 a span{

}

.spfooternav1 a span::before{
content: "";
background: url("../images/ic_tel.svg") no-repeat;
display: inline-block;
width: 1.8rem;
height: 1.8rem;
vertical-align: middle;
margin-right: .5rem;
}

.spfooternav2{
width: 8rem;
display: flex;
align-items: center;
justify-content: center;
background: linear-gradient(to right, #fc6295, #ec497f);
}

.spfooternav2 a{
display: flex;
align-items: center;
justify-content: center;
width: 100%;
font-size: 1.2rem;
color: #fff;
letter-spacing: 0.1rem;
}

.spfooternav2 a span::before{
content: "";
background: url("../images/ic_access_white.svg") no-repeat;
display: block;
width: 2.4rem;
height: 2.4rem;
margin: 0 auto .5rem;
}




.spfooternav2 a span{

}

.spfooternav3{
width: 8rem;
display: flex;
align-items: center;
justify-content: center;
background: #f4fffb;
}

.spfooternav3 a{
display: flex;
align-items: center;
justify-content: center;
width: 100%;
font-size: 1.2rem;
text-align: center;
letter-spacing: 0rem;
color: #004e8f;
}

.spfooternav3 a span{
line-height: 1.2;
}

.spfooternav3 a span::before{
content: "";
background: url("../images/ic_access.svg") no-repeat;
display: block;
width: 2.4rem;
height: 2.4rem;
margin: 0 auto .7rem;
}

.spfooternav5{
font-size: 1.2rem;
color: #fff;
display: flex;
align-items: center;
justify-content: center;
width: 100%;
letter-spacing: 0.1rem;
margin: 0 0 0 0;
line-height: 1;
}


/* 2行表示に対応 */
.spfooternav1 a{flex-direction:column;gap:.3rem;}
/* 既存の「全spanに電話アイコン」を無効化 */
.spfooternav1 a span::before{content:none;}
/* 1行目のラベル */
.spfooternav1-label{font-size:1.3rem;line-height:1.4;color: #2f967f;font-weight:600;}
/* 2行目の電話番号（アイコン付き） */
.spfooternav1-tel{font-size:2.2rem;line-height:1;font-weight:500;}
.spfooternav1-tel::before{
  content:"";
  background:url("../images/ic_tel.svg") no-repeat;
  display:inline-block;
  width:1.8rem;height:1.8rem;
  vertical-align:middle;
  margin-right:.5rem;
}
/* === SPフッタ電話：アイコン強制表示 === */
.spfooternav1 a .spfooternav1-tel::before{
  content:""!important;
  display:inline-block!important;
  background:url("../images/ic_tel.svg") no-repeat center/contain;
  width:1.6rem;
  height:1.6rem;
  vertical-align:middle;
  margin-right:.2rem;
}
/* ラベル側はアイコン非表示 */
.spfooternav1 a .spfooternav1-label::before{content:none!important;display:none!important;}
/* 2行縦並びは維持 */
.spfooternav1 a{flex-direction:column;gap:.3rem;}


/* sp footer */


/* access */

.access__w{
width: 1000px;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}


/* access */
.newspage1{
width: 100%;
display: flex;
flex-wrap: wrap;
}

.newspage2{
width: 100%;
font-size: 1.4rem;
margin: 0 0 8px 0;
color: #555;
}

.newspage3{
width: 100%;
font-size: 2.2rem;
color: #3caa30;
margin: 0 0 10px 0;
}

.newspage4{
width: 100%;
font-size: 1.6rem;
}


/* <!--btn reservation--> */
.btn_fix__w{
position: fixed;
top: 260px;
right: 50px;
z-index: 2100;
}

.btn_fix__w a{
width: 196px;
height: 220px;
display: block;
}

.btn_fix__w a img{
width: 100%;
height: 100%;
}

.btn_fix__w a:hover,
.btn_fix__w a:active{
opacity: .7;
transform: translateY(-5px);
}

/* <!--btn reservation--> */
.btn_fix2__w{
position: fixed;
top: 510px;
right: 20px;
z-index: 2100;
}

.btn_fix2__w a{
width: 196px;
height: 220px;
display: block;
}

.btn_fix2__w a img{
width: 100%;
height: 100%;
}

.btn_fix2__w a:hover,
.btn_fix2__w a:active{
opacity: .7;
transform: translateY(-5px);
}
/* subject */


/* reservation */
.topreservation__w{
background: #fff;
width: 100%;
padding: 4rem 0 1rem;
}
.topreservation1{
display: flex;
justify-content: space-around;
align-items: center;
flex-wrap: wrap;
}
.topreservation1 > div:first-child {
border-bottom: 1px solid #333;
}
.topreservation2 {
width: 100%;
text-align: center;
}
.topreservation3 {
width: 100%;
display: flex;
justify-content: center;
align-items: center;
margin-top: 10px;
flex-wrap: wrap;
}
.topreservation3 > div:first-child {
margin-right: 2rem;
}

.topreservation4 a{
display: flex;
font-size: 2.6rem;
font-weight: 500;
line-height: 1;
letter-spacing: 0.15rem;
}
.topreservation5 {
font-size: 1.8rem;
margin-bottom: 2rem;
}
.topreservation6 {
width: 100%;
text-align: center;
}
.topreservation6 a{
display: inline-block;
text-align: center;
background: #d87d97;
padding: 1rem 5rem;
color: #fff;
position: relative;
border-radius: 4px;
}
.topreservation6 div{
display: inline-block;
text-align: center;
background: #d87d97;
padding: 1rem 5rem;
color: #fff;
position: relative;
border-radius: 4px;
}
.topreservation6 a:after {
content: '';
position: absolute;
top: 0;
bottom: 0;
right: 2rem;
background: url(../images/ic_arrow1.svg);
display: inline-block;
width: 1.2rem;
height: 1.2rem;
margin: auto;
vertical-align: baseline;
transition: all .3s;
}
.topreservation6 a:hover {
opacity: 1;
background: #bf5f7a;
border-radius: 4px;
}
.topreservation6 a:hover::after {
right: 1.6rem;
}
.topreservation7 {
font-size: 2.3rem;
display: inline-block;
margin-right: 0.7rem;
}

/* reservation */


/* access */
.footertimetable__w {
flex: 1;
margin: 0 auto;
}

.footertimetable1 {
width: 100%;
margin: 0 auto;
}
.footertimetable2 {
display: flex;
flex-wrap: wrap;
height: 100%;
justify-content: center;
}
.topreservation3 {
width: 100%;
text-align: center;
margin-bottom: 4rem;
}
.footertimetable4 {
border-collapse: collapse;
overflow-x: scroll;
width: 95%;
margin: 0 auto;
}
.footertimetable4 th,
.footertimetable4 td {
padding: 1rem;
text-align: center;
border-bottom: 1px solid #fff;
font-size: 1.3rem;
color: #fff;
line-height: 1;
position: relative;
}

.footertimetable3{
width: 100%;
}

.footertimetable4 th {
font-weight: 400;
vertical-align: middle;
}

.footertimetable4 td {
vertical-align: middle;
}

.footertimetable4 th:first-child {
vertical-align: middle;
}

.footertimetable4 th span {
font-size: 1rem;
display: inline-block;
}

.footertimetable5 {
width: 100%;
text-align: right;
color: #fff;
margin-top: .5rem;
padding-right: 1.5rem;
font-size: 1.4rem;
}

.footertimetable6 {
display: inline-block;
text-align: left;
}

.footertimetable4 td sup {
position: absolute;
top: .5rem;
right: .2rem;
font-size: 1rem;
letter-spacing: 0;
}

.footertimetable4 th sup {
position: absolute;
top: .5rem;
right: .2rem;
font-size: 1rem;
letter-spacing: 0;
}

.biyoprice__w {
width: 100%;
margin-top: 3rem;
}

.biyoprice1 {
width: 95%;
margin: 0 auto;
}

.biyoprice2 {
width: 100%;
text-align: center;
margin-bottom: 3.5rem;
}

.biyoprice2 span {
font-size: 2rem;
display: inline-block;
text-align: center;
padding: .5rem 2.5rem;
border: 1px solid #555;
font-weight: 500;
}

.biyoprice3 {
width: 100%;
text-align: center;
margin-bottom: 1rem;
font-weight: 500;
}	

.biyoprice_text {
font-size: 1.4rem;
}


.biyoprice4 {
width: 100%;
margin-bottom: 4rem;
}
.biyoprice4 table{
width: 100%;
}


.biyoprice4 table td{
border: 1px solid #d0d0d0;
padding: .7rem 1rem;
vertical-align: middle;
background: #FCFCFC;
font-size: 1.2rem;
}

.biyoprice4 table td:first-child{
width: 40%;
font-weight: 500;
text-align: center;

}

.biyoprice4 table td:last-child{
font-weight: 500;
width: 16rem;
text-align: right;
}


.biyoprice4 table td.kaisuu{
border-right: none;
text-align: right;
width: 35%;
font-weight: 500;
}

.biyoprice4 table td.kaisuu + td{
border-left: none;
padding-left: 0;
}

.biyoprice4 table td span{
display: block;
font-size: 1.2rem;
}

.biyoprice5 table td:nth-child(2){
text-align: right;
}

table.tabeldoctor1{
width: 100%;
border: 1px solid #989898;
font-size: 1.3rem;
letter-spacing: 0;
line-height: 1.2;
}

table.tabeldoctor1 th{
border: 1px solid #989898;
padding: .5rem;
text-align: center;
font-weight: 500;
color: #fff;
background: #505050;
vertical-align: middle;
}

table.tabeldoctor1 td{
border: 1px solid #989898;
padding: .5rem;
text-align: center;
vertical-align: middle;
}

table.tabeldoctor1 td:first-child{
padding: .5rem;
text-align: center;
vertical-align: middle;

}

.tabeldoctor2{
background: #f2f2f2;
font-weight: 500;
}

.tabeldoctor3{
width: 100%;
font-size: 1.3rem;
padding: 1rem .5rem 0;
line-height: 1.4;
}

.tabeldoctor4{
display: inline-block;
text-align: left;
}

.checkupmenu1{
width: 100%;
text-align: center;
margin: 0 auto;
border-bottom: 1px dotted #000;
padding-bottom: 8rem;
}

.checkupmenu1 .pinkbtn01{
width: 95%;
text-align: center;
margin: 0 auto;
}

table.tabeldoctor1{
width: 100%;
border: 1px solid #989898;
}

table.tabeldoctor1 th{
border: 1px solid #989898;
padding: .5rem;
text-align: center;
font-weight: 500;
color: #fff;
background: #505050;
}

table.tabeldoctor1 td{
border: 1px solid #989898;
padding: .5rem;
text-align: center;
vertical-align: middle;
}

table.tabeldoctor1 td:first-child{
padding: .5rem;
text-align: center;
vertical-align: middle;

}

.tabeldoctor2{
background: #f2f2f2;
font-weight: 500;
}

.tabeldoctor3{
width: 100%;
text-align: left;
line-height: 1.7;
}

.checkupmenu1{
width: 100%;
text-align: center;
margin: 0 auto;
border-bottom: 1px dotted #000;
padding-bottom: 5rem;
}

.checkupmenu1 .pinkbtn01{
width: 30rem;
text-align: center;
margin: 0 auto;
}

.checkupmenu3{
width: 100%;
padding: 0 1rem;
}

.checkupmenu3 table{
width: 100%;
border: 1px solid #ccc;
}

.checkupmenu3 table th{
border: 1px solid #ccc;
padding: 1.2rem .5rem;
vertical-align: middle;
text-align: center;
font-size: 1.2rem;
font-weight: 700;
background: #eee;
}

.checkupmenu3 table th:nth-child(1){
width: 8rem;
}

.checkupmenu3 table td{
border: 1px solid #ccc;
padding: .5rem .5rem;
vertical-align: middle;
text-align: center;
font-size: 1.2rem;
}

.checkupmenu3 table td.checkupmenu4{
border: 1px solid #ccc;
padding: 1.7rem .5rem;
vertical-align: middle;
text-align: center;
font-size: 1.2rem;
font-weight: 600;
background: #F0F0F0;
}

.checkupmenu5{
padding: 0 2rem;
margin-top: 2rem;
margin-bottom: 5rem;
}

.pageback{
margin: 0 0 0 auto;
width: 50%;
font-size: 1.3rem;
margin-top: 20px;
font-weight: 500;
text-align: right;
}

.pageback a::before{
content: '▲';
color: #d87d97;
}

.marker{
background: linear-gradient(transparent 70%, #ffe700 70%);
}

.makeup-parts{
font-size: 1.8rem;
color: #ffffff;
background: #62582C;
text-align: center;
width: 100%;
margin: 2em 0 1em;
}	
.makeup-parts-detail{
margin-bottom: 30px;
}	
.bnr_topics{
width: 90%;
margin: 20px auto 20px;
}
.bnr_topics a{
display: inline-block;
width: 100%;
box-shadow: 0px 3px 3px #cbc2af;
}
.bnr_kenpo{
width: 90%;
margin: 20px auto 20px;
}
.bnr_kenpo a{
display: inline-block;
width: 100%;
box-shadow: 0px 3px 3px #cbc2af;
}

.recruit_img{
width: 100%;
margin: 0 auto;
padding: 0 2rem;
}

.recruit_text{
width: 100%;
}

.recruit_title{
font-size: 2rem;
padding: 0 0.5% 1.3rem;
border-bottom: 1px solid #5d481d;
margin-bottom: 1.3rem;
color: #5d481d;
font-family: 'Playfair Display', serif;
}

.alink{
display: block !important;
margin-top:-9rem !important;
padding-top:9rem !important;
}



.topkijun__w {
width: 100%;
background: #e5e2dd;
padding: 2rem 2rem;
}

.topkijun1 {
width: 100%;
margin: 0 auto;
padding: 3rem;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
background: #fff;
border-radius: 5px;
}

.topkijun2 {
width: 100%;
font-size: 2rem;
font-weight: 500;
text-align: center;
margin-bottom: 1rem;
}

.topkijun3 {
width: 100%;
font-size: 1.7rem;
font-weight: 500;
margin-bottom: .5rem;
}

.topkijun4 {
width: 100%;
margin-bottom: 2rem;
font-size: 1.5rem;
}

.topkijun4:last-child {
margin-bottom: 0;
}



.topbnr__w{
width: 100%;
padding: 4rem 0 0;
}
.topbnr1{
width: 70%;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
margin: 0 auto;
}
.topbnr2{
width: 100%;
margin-bottom: 2rem;
}

.topbnr2 img{
border: 1px solid #DCDCDC;
box-shadow: 10px 10px 10px #ededed;
}



/* cosmetics */
.yoyakubnr {
width: 100%;
}
.yoyakubnr a {
display: inline-block;;
flex-wrap: wrap;
justify-content: center;
align-items: center;
font-weight: 500;
line-height: 1.3;
color: #fff;
border-radius: 400px;
background: #f08300;
text-align: center;
box-shadow: 0 5px 0 #E9610A;
font-size: 1.6rem;
padding: 1.7rem 2rem;
}

.yoyakubnr a span::before {
content: "";
background: url("../images/ic_arrow4.svg") no-repeat;
display: inline-block;
width: .8rem;
height: .8rem;
margin: 0 .5rem 0 0;
vertical-align: middle;
}

.yoyakubnr .btn_icon {
width: 30px;
height: 30px;
margin: 0 2vw 0 0;
}


    .referral_list li{
  position: relative;
  padding-left: 1.2em; 
  margin: 0 0 5px;
}

.referral_list li::before{
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
  color: #1b93cf;
}

.referral_list li:last-child{
  margin: 0;
}

.referral_link{
  display: inline;
  border-bottom: 1px dotted #1b93cf;
  color: #1b93cf !important;
  font-weight: 500;
}
    
.medi-list li {
        width: 100%;
        line-height: 1.6;
        position: relative;
        padding-left: 2.2rem;
        text-indent: 0;
    margin: 0 0 1rem 0;
    }    
.medi-list li::before {
        content: "";
        position: absolute;
        left: 0;
        top: 0.5em;
        width: 10px;
        height: 10px;
        background: #49a9f9;
        border-radius: 50%;
    }
.medi-list li:last-child {
        margin: 0;
    }     
        .supplement{
        font-size: 1.6rem;
        letter-spacing: .08rem;
        line-height: 1.6;
        font-weight: 500;
        padding-left: 1em;
  text-indent: -1em;
        color: #49a9f9;
    }    
    

.medical_list {
width: 100%;
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        flex-direction: column;
}   
.medical_list li {
       width: 100%;
        line-height: 1.5;
        margin: 0 0 1rem 0;
        position: relative;
        padding-left: 1.6em;
}
.medical_list li::before {
content: "";
        position: absolute;
        left: .5em;
        top: .8em;
        transform: translateY(-50%);
        width: 10px;
        height: 10px;
        border-radius: 50%;
        background: #185aa5;
}    
.medical_list li:last-child {
margin: 0;
}    
    
    
    

/* slider */

.swiper {
width: 100%;
margin-top: 6rem;
}
.swiper-wrapper {
}
.swiper-slide {


/* Center slide text vertically */
display: -webkit-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-box-pack: center;
-ms-flex-pack: center;
-webkit-justify-content: center;
justify-content: center;
-webkit-box-align: center;
-ms-flex-align: center;
-webkit-align-items: center;
align-items: center;
position: relative;
}
.swiper-slide1a{
position: absolute;
        left: 50%;
        bottom: 8%;
        transform: translateX(-50%);
        z-index: 1;
        width: 90%;
        text-align: center;
}
/* テキストボックス */
.swiper-slide1a p {
  display: inline-block;
        font-weight: 500;
        font-size: 1.6rem;
        line-height: 1.8;
        padding: 1rem 2rem;
        color: #2762a9;
        border-radius: 8px;
        background: rgb(255 255 255 / 70%);
        box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
}
.swiper-slide1a span{
display: inline;
font-weight: 500;
font-size: 2.3vw;
line-height: 3.2;
padding: .6rem 1rem .6rem 1rem;
background: rgb(255 255 255 / 90%);
color: #2762a9;
}

.swiper-slide1b{
margin-top: 2rem;
}

.swiper-slide1b span{
display: inline-block;
color: #5d481d;
font-weight: 400;
margin-bottom: 1.3rem;
font-size: 1.8rem;
line-height: 1.8;
}

.swiper-slide1c{
position: absolute;
z-index: 1;
bottom: 1rem;
color: #fff;
font-size: 1.1rem;
text-align: right;
display: block;
width: 100%;
padding-right: 1rem;
}

.swiper-slide2{
position: relative;
}


.swiper-slide2 img {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
}

.swiper-button-next,
.swiper-button-prev {
display: none !important;
}

.swiper_txt {
position: absolute;
right: 2rem;
top: 8rem;
width: 630px;
z-index: 10;
}

.swiper_txt img {
display: block;
width: 100%;
}

/* slider */


/* news */

.topnews__w{
width: 100%;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
padding: 0 0 2rem;
}
.topnews_bnr{
width: 100%;
margin: 0 auto 3rem;
display: flex;
border:1px solid #ccc;
}

.topnews1 {
width: calc(100% - 2rem);
margin: 0 auto;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
padding: 4rem 2rem;
background: #fff;
border-radius: 3px;

}

.topnews2 {
width: 100%;
display: flex;
flex-wrap: wrap;
text-align: center;
margin-bottom: 4rem;
}

.topnews3 {
width: 100%;
display: flex;
flex-wrap: wrap;
text-align: center;
align-items: center;
justify-content: center;
}

.topnews3 h2 {
font-size: 2.4rem;
        letter-spacing: .3rem;
        font-weight: 500;
        line-height: 1.3;
        font-family: YakuHanMP, "Zen Maru Gothic", sans-serif;
        text-align: center;
        position: relative;
}

.topnews3 h2 span {
display: block;
width: 100%;
}

/* afterを下に表示させる（縦並び） */
.topnews3 h2 span::after {
        content: "INFORMATION";
        display: block;
        font-size: 1.3rem;
        font-weight: 500;
        color: #0a60b7;
        letter-spacing: 0.3rem;
        border-radius: 3px;
        width: fit-content;
        margin: .5rem auto 0;    
}

.topnews4 {
width: 100%;
}

.topnews5 {

width: 100%;
display: flex;
flex-wrap: wrap;
/*height: 300px;    
position: relative;
z-index: 2;
    overflow-y: scroll;*/
}
.topnews5 iframe {
width: 100%;
height: 35vh;
}
.topnews6 {
width: 100%;
font-size: 1.5rem;
margin-bottom: .5rem;
color: #5d481d;
opacity: .6;
}

.topnews7 {
width: 100%;
font-size: 1.8rem;
margin-bottom: .8rem;
font-weight: 500;
}

.topnews8 {
width: 100%;
font-size: 1.6rem;

}

.topnews8 iframe {
width: 100%;
height: 450px;
}

.newskiji1 {
width: 100%;
border-bottom: 1px dotted #cac8bc;
padding: 0 0 2rem 0;
margin: 0 0 2rem;
}
.newskiji2 {
width: 100%;
font-size: 1.2rem;
margin: 0 0 0 0;
font-weight: 400;
}  
.newskiji3 {
width: 100%;
}
.newskiji4 {
display: inline-block;
font-size: 1.7rem;
margin: 0 0 .5rem 0;
font-weight: 700;
} 
.newskiji5 {
width: 100%;
font-size: 1.5rem;
}  

/* news */

/* news */

.topfeature__w{
width: 100%;
display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        padding: 5rem 0 5rem;
        background: url(../images/fu_bg.jpg);
        background-size: cover;    
}

.topfeature1{
width: 100%;
text-align: center;
margin-bottom: 4rem;
}

.topfeature1 h2 {
font-size: 2.4rem;
        letter-spacing: .3rem;
        font-weight: 500;
        line-height: 1.3;
        font-family: YakuHanMP, "Zen Maru Gothic", sans-serif;
        text-align: center;
        position: relative;
}

.topfeature1 h2 span {
display: block;
width: 100%;
}

/* afterを下に表示させる（縦並び） */
.topfeature1 h2 span::after {
content: "FEATURES";
        display: block;
        font-size: 1.3rem;
        font-weight: 500;
        color: #0a60b7;
        letter-spacing: 0.3rem;
        border-radius: 3px;
        width: fit-content;
        margin: .5rem auto 0;  
}

.topfeature2{
width: calc(100% - 2rem);
margin: 0 auto;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}

.topfeature3{
width: 80%;
margin: 0 auto 6rem;
display: flex;
justify-content: space-between;
position: relative;
flex-wrap: wrap;
}
    .topfeature3:last-child {
        margin: 0 auto 0;
    }
.topfeature4{
width: 100%;
position: relative;
margin-bottom: 2rem;
}
    
.topfeature-illust {
        position: absolute;
        z-index: 1;
        opacity: 1;
        pointer-events: none;
    }    
.topfeature-illust1{
        left: -40px;
        top: -50px;
        width: 100px;
}
.topfeature-illust2{
   right: -40px;
        top: -50px;
        width: 100px;
}
.topfeature4 img{
width: 100%;
height: auto;
border-radius: 3px;
}


.topfeature5{
width: 100%;
position: relative;
padding-top: 1rem;
}

.topfeature6{
width: 100%;
font-size: 2rem;
font-weight: 600;
letter-spacing: .1rem;
color: #252a2f;
margin-bottom: 1.5rem;
}

.topfeature6::first-letter{
color: #2ea7e0;
}
.topfeature6 span:first-child {
color: #4b7abe;
}

.topfeature6 span {
display: inline-block;   /* フォント形を崩さず */
opacity: 0;
transform: translateY(10px);
animation: fadeInUp 0.5s forwards;
}








.topfeature7{
line-height: 1.8;
font-size: 1.5rem;
font-weight: 400;
}
.topfeature8 {
        margin: 20px 0 0 0;
    text-align: center;
    }
    .topfeature8 a {
        position: relative;
        text-align: center;
        padding: 1.5rem 4rem;
        box-sizing: border-box;
        border: 1px solid #003f73;
        border-radius: 5px;
        font-size: 1.5rem;
        font-weight: 500;
        letter-spacing: 0.02rem;
        display: inline-block;
        color: #003f73;
        background: #fff;
        transition: background-color .15s ease, color .15s ease, border-color .15s ease;
        box-shadow: 5px 5px 10px rgb(164 194 199 / 30%);
    }
        .topfeature8 a:hover {
        background: #003f73;
        color: #fff;
        border-color: #003f73;
        opacity: 1;
    }
/* subject */
.topsubject__w{
width: 100%;
padding:5rem 0 5rem;
        position: relative;
        overflow: hidden;
        background: #f2f2f27d;
}

.topsubject__bg{
  position: absolute;
  top: 0;
   width: 100%;
    height: 100%;
    object-fit: cover;       /* ←これ */
    object-position: center; /* 位置調整 */
    opacity: .45;  
}

.topsubject__bg--left{ left: 0; }
.topsubject__bg--right{ right: 0; }
    
.topsubject1 {
margin-bottom: 4rem;
}


.topsubject1 h2 {
font-size: 2.4rem;
        letter-spacing: .3rem;
        font-weight: 500;
        line-height: 1.3;
        font-family: YakuHanMP, "Zen Maru Gothic", sans-serif;
        text-align: center;
        position: relative;
}

.topsubject1 h2 span {
display: block;
width: 100%;
}

/* afterを下に表示させる（縦並び） */
.topsubject1 h2 span::after {
content: "MEDICAL";
        display: block;
        font-size: 1.3rem;
        font-weight: 500;
        color: #0a60b7;
        letter-spacing: 0.3rem;
        border-radius: 3px;
        width: fit-content;
        margin: .5rem auto 0;  
}
    
 
/* =========================
   診療科目 
========================= */
.topsubject2 {
  width: 90%;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
     position: relative;
  z-index: 2;
}

.topsubject2 a {
          width: calc((100% - 10px) / 2);
        text-decoration: none;
        color: #425377;
        background: #ffffff;
        border-radius: 12px;
        padding: 2rem 0 2rem;
        text-align: center;
        transition: all 0.25s ease;
        border: solid 3px #e0f1ff;
}

.topsubject2 a:hover {
  background: #cbebff;
  opacity: 1;
}
    
.topsubject2 img {
  width: 100%;
  height: auto;
  display: block;
}
    /*class名が「-icon」で終わる要素すべて*/
.topsubject2 [class$="-icon"] {
  display: block;
  width: 60px;
  height: 60px;
  margin: 0 auto 0;
}


 /*class名が「-text」で終わる要素すべて*/
.topsubject2 [class$="-text"] {
  display: block;
  font-size: 1.8rem;
  line-height: 2;
  letter-spacing: 0.05em;
  font-weight: 500;
}  
    
.topsubject3{
        width: 90%;
        margin: 0 auto;
        
    }
.topsubject3 p{
        font-weight: 500;
        letter-spacing: 0.1em;
                padding: 1rem 2rem;
        border: 2px #003f73 dotted;
        border-radius: 8px;
        color: #003f73;
    }    



/* subject */

.topkenshin__w{
width: 100%;
padding: 5rem 0 7rem;
}

.topkenshin1{
width: 100%;
}

.topkenshin1 h2{
text-align: center;
font-size: 1.8rem;
font-weight: 400;
letter-spacing: .2rem;
}

.topkenshin1 h2 span::before {
content: "CHECKUP";
display: block;
width: 100%;
text-align: center;
font-size: 2.5rem;
font-weight: 400;
font-family: 'Playfair Display', serif;
}

.topkenshin2{
width: 100%;
margin: 0 auto;
padding: 0 2rem;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: flex-start;
}

.topkenshin3{
width: 100%;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}

.topkenshin4{
width: 100%;
}

.topkenshin4 img{
width: 100%;
}

.topkenshin5{
width: 100%;
text-align: center;
font-size: 2rem;
padding: 1.5rem 0 1.5rem;
border-bottom: 1px solid #5d481d;
margin-bottom: 1.5rem;
color: #5d481d;
}

.topkenshin6{
width: 100%;
font-size: 1.5rem;
line-height: 2.2;
font-weight: 400;
}

/* subject */



/* medical */

.topmedical__w{
width: 100%;
padding: 5rem 0 5rem;
background: url("../images/topmedicalbg.png") left bottom no-repeat #fafafa;
}

.topmedical1{
width: 100%;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
}

.topmedical2{
width: 80%;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
background: #fff;
}

.topmedical3{
width: 100%;
}

.topmedical3 img{
width: 100%;
border-radius: 10px 10px 0 0;
}

.topmedical4{
width: 100%;
text-align: center;
}

.topmedical4 img{
width: 10rem;
margin-top: -50px;
}

.topmedical5{
width: 100%;
font-size: 2rem;
text-align: center;
line-height: 1.4;
font-weight: 400;
padding: 2rem 0 0;
font-family: YakuHanJP, 'Noto Serif JP', sans-serif;
}

.topmedical5 span{
display: block;
position: relative;
width: 100%;
}

.topmedical5 span::after{
content: "";
background: url("../images/ic_arrow2.svg");
width: 1.4rem;
height:1.4rem;
display: inline-block;
vertical-align: middle;
position: absolute;
right: 2rem;
top: 2.3rem;
}

.topmedical6{
font-size: 1.6rem;
display: block;
}

.topmedical7{
width: 80%;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
background: #fff;
padding: 3.5rem 2rem;
}

.topmedical8{
display: block;
width: 50px;
}

.topmedical8 img{
width: 50px;
height: 50px;
}

.topmedical9{
width: calc(100%);
font-size: 1.8rem;
text-align: center;
line-height: 1.2;
letter-spacing: .07rem;
font-family: YakuHanJP, 'Noto Serif JP', sans-serif;
font-weight: 400;
}

.topmedical9 span{
display: block;
position: relative;
}

.topmedical9 span::after{

background: url("../images/ic_arrow2.svg");
content: "";
width: 1.4rem;
height:1.4rem;
display: inline-block;
vertical-align: middle;
position: absolute;
right: 0;
top: .5rem;
}

.topmedical10{
width: 100%;
font-size: 1.4rem;
padding: 2.5rem 3rem;
line-height: 1.8;
}

.topsubject11{
width: 100%;
}

.topsubject11 h2{
text-align: center;
font-size: 2rem;
font-weight: 500;
font-family: YakuHanJP, 'Noto Serif JP', sans-serif;
color: #4c2828;
letter-spacing: .3rem;
}

.topsubject11 h2 span::after{
content: "";
display: block;
background: #81391b;
width: 5rem;
height: .1rem;
margin: 1rem auto 0;
}


/* medical */



/* access */
.topaccess__w {
width: 100%;
padding: 2rem 0 5rem;
background: -webkit-linear-gradient(-90deg, #ffffff, #fafafa);
}

.topaccess1{
width: 100%;
text-align: center;
margin-bottom: 4rem;
}

.topaccess1 h2 {
font-size: 2.8rem;
letter-spacing: .4rem;
font-weight: 500;
line-height: 1.3;
font-family: YakuHanMP, "Zen Maru Gothic", sans-serif;
text-align: center;
position: relative;
}

.topaccess1 h2 span {
display: block;
width: 100%;
}

/* afterを下に表示させる（縦並び） */
.topaccess1 h2 span::after {
content: "ACCESS";
display: block; /* ← inline-block → block に変更 */
margin-top: 1.2rem; /* タイトルとの間に余白を追加 */
font-size: 1.3rem;
font-weight: 500;
color: #fff;
letter-spacing: 0.4rem;
background: #4b7abe;
padding: .4rem 1rem;
border-radius: 3px;
width: fit-content;
margin-left: auto;
margin-right: auto;
}





.topaccess2 {
width: calc(100% - 2rem);

margin: 0 auto;
display: flex;
flex-wrap: wrap;
}

.topaccess3 {
width: 450px;
position: relative;
}

.topaccess3 img{
width: 100%;
}

.topaccess4 {
width: 750px;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
position: relative;
}

.topaccess5 {
width: 50%;
padding: 2rem 0 4rem;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
border-right: 1px solid #5d481d;
}

.topaccess6 {

width: 100%;
font-size: 1.8rem;
line-height: 1.8;
text-align: center;
}

.topaccess7 {
width: 100%;
font-size: 2.5rem;
font-weight: 500;
text-align: center;
letter-spacing: .2rem;
}

.topaccess8 {
width: 100%;
font-size: 1.5rem;
text-align: center;
}

.topaccess8b {
width: 100%;
font-size: 1.5rem;
text-align: center;
}

.topaccess9 {
width: 50%;
padding: 2rem 0 4rem;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}

.topaccess10 {
width: 100%;
font-size: 1.8rem;
text-align: center;
}

.topaccess11 {
display: inline-block;
font-size: 3rem;
font-weight: 500;
text-align: center;
padding: 0 .5rem;
}

.topaccess13 {
width: 300px;
position: absolute;
bottom: -3.5rem;
left: 50%;
transform: translateX(-50%);
-webkit-transform: translateX(-50%);
-ms-transform: translateX(-50%);
}
.topaccess13 a {
width: 100%;
display: block;
text-align: center;
background: #d87d97;
padding: 1.8rem;
color: #fff;
position: relative;
border-radius: 4px;
}
.topaccess13 a:after {
content: '';
position: absolute;
top: 0;
bottom: 0;
right: 2rem;
background: url(../images/ic_arrow1.svg);
display: inline-block;
width: 1.2rem;
height: 1.2rem;
margin: auto;
vertical-align: baseline;
transition: all .3s;
}

.topaccess14 {
width: 100%;
max-width: 1200px;
margin: 9rem auto 0;
height: 0;
overflow: hidden;
padding-bottom: 20.25%;
position: relative;
}
.topaccess14 iframe{
position: absolute;
left: 0;
top: 0;
height: 100%;
width: 100%;
}

.topaccess15{
width: 100%;
display: flex;
justify-content: center;
justify-content: space-between;
flex-wrap: wrap;
}

.topaccess16{
width: 100%;
height: 45vh;
}

.topaccess16 iframe{
height: 100%;
width: 100%;
}
.topaccess17{
width: 100%;
margin: 0 auto;
margin-top: 4rem;
text-align: center;
}
.topaccess18 a{
width: 70%;
margin: 0 auto;
display: block;
text-align: center;
background: #fff;
padding: 1.8rem;
border-radius: 4px;
position: relative;
border: 1px solid #e7e7e7;
font-weight: 500;
box-shadow: 10px 10px 10px #ededed;
}
.topaccess18 a span {
display: inline-block;
position: relative;
padding: 0 0 0 1.5rem;
}

.topaccess18 a span::before {
content: "▲";
position: absolute;
top: .15rem;
bottom: 0;
left: -.75rem;
display: inline-block;
font-size: .7rem;
transition: all .3s;
transform: rotate(90deg);
color: #4b7abe;
}
.topaccess18 a:hover {
  background: #004499 !important;
}
.topaccess19 {
width: 100%;
margin: 0 auto;
position: relative;
margin-bottom: 3rem;
}

.topaccess19 img{
width: 100%;
height: auto;
border: solid 1px #E3E9ED;
border-radius: 5px;
}
/* access */












.clinic-hours {
max-width: 600px;
margin: 0 auto;
background: white;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
overflow: hidden;
}

.department-header {
background: linear-gradient(135deg, #004e8f 0%, #0066cc 100%);
color: white;
padding: 1rem;
text-align: center;
position: relative;
border-radius: 0.5rem 0.5rem 0 0;
}

.department-title {
font-size: 1.4rem;
font-weight: bold;
letter-spacing: 2px;
}

.department-subtitle {
font-size: 1rem;
opacity: 0.9;
margin: 0;
font-weight: normal;
}

.department-header::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 3px;
background: linear-gradient(90deg, transparent, white, transparent);
opacity: 0.3;
}

.clinic-hours table {
width: 100%;
border-collapse: collapse;
font-size: 1.2rem;
}

.clinic-hours th {
background: #004e8f;
color: white;
padding: 1rem;
text-align: center;
font-weight: bold;
border: 1px solid #003d73;
}

.clinic-hours td {
padding: 0.5rem;
text-align: center;
border: 1px solid #e0e0e0;
background: white;
font-size: 1rem;
}

.time-label {
background: #f8f9ff;
font-weight: bold;
color: #333;
text-align: center;
}


.clinic-hours-2 {
max-width: 600px;
margin: 0 auto;
background: white;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
overflow: hidden;
}

.department-header-2 {
background: linear-gradient(135deg, #cc6600 0%, #e67300 100%);
color: white;
padding: 1rem;
text-align: center;
position: relative;
border-radius: 0.5rem 0.5rem 0 0;			
}

.department-title-2 {
font-size: 1.4rem;
font-weight: bold;
letter-spacing: 2px;
}

.department-subtitle-2 {
font-size: 1rem;
opacity: 0.9;
margin: 0;
font-weight: normal;
}

.department-header-2::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 3px;
background: linear-gradient(90deg, transparent, white, transparent);
opacity: 0.3;
}

.clinic-hours-2 table {
width: 100%;
border-collapse: collapse;
font-size: 1.2rem;
}

.clinic-hours-2 th {
background: #cc6600;
color: white;
padding: 1rem;
text-align: center;
font-weight: bold;
border: 1px solid #b35900;
}

.clinic-hours-2 td {
padding: 0.5rem;
text-align: center;
border: 1px solid #e0e0e0;
background: white;
font-size: 1rem;
}

.clinic-hours-2 .time-label {
font-weight: bold;
color: #333;
text-align: center;
}

.clinic-hours-2 .open {
color: #ff8c00;
font-weight: bold;
}

.clinic-hours-2 .closed {
color: #ccc;
font-weight: bold;
}

.clinic-hours-2 .special {
color: #ff8c00;
}


.clinic-hours {
width: 100%;           /* 少し横幅を広げる（任意） */
margin: 0 auto 2.5rem;
background: #ffffff;
}

.clinic-hours .hours-table {
width: 100%;
border-collapse: collapse;
font-size: 1.4rem;
table-layout: fixed; /* 幅のブレ防止 */
}

/* 見出しセル（左端「診療受付時間」） */
.clinic-hours .hours-table th.label {
background: #155145;       /* 指定色 */
color: #fff;
text-align: center;
font-weight: 700;
letter-spacing: 0.06em;
border-right: 1px solid #0f3a32;
width: 8.8em;
padding: 12px 6px;
}

/* 曜日ヘッダ */
.clinic-hours thead th {
background: #1a5f50;       /* #155145 より少し明るめの同系色 */
color: #fff;
padding: 20px 8px;
text-align: center;
font-weight: 700;
border-left: 1px solid #0f3a32;
border-bottom: 1px solid #0f3a32;
}


/* 時間帯の行見出し */
.clinic-hours .hours-table th.time {
background: #f9f9f9;       /* 緑系の淡色 */
color: #14463c;
text-align: center;
font-weight: 700;
border: 1px solid #d9e6e2;

width: 8.8em;
padding: 12px 6px;
}

/* セル共通 */
.clinic-hours td {
padding: 14px 8px;
text-align: center;
border: 1px solid #e5ece9;
background: #ffffff;
font-weight: 700;
padding: 12px 6px;
font-size: 17px;
}

/* 記号スタイル */
.clinic-hours td.open {      /* ● */
color: #f2b600;           /* 指定色 */
}

.clinic-hours td.closed {    /* ／ */
color: #c7d0cd;
}

.clinic-hours td.special {   /* ★ */
color: #f2b600;           /* 視認性の高いゴールド */
}

/* 角丸の見え方最適化（テーブル外周の線を消す） */
.clinic-hours .hours-table {
border: none;
font-size: 1.3rem;
}
.clinic-hours .hours-table thead th:first-child { border-left: none; }
.clinic-hours .hours-table thead th:last-child  { border-right: none; }


.clinic-notes {
width: 100%;
margin: 1.5rem auto 2rem;
background: #f9f9f9;
border-radius: 6px;
font-size: 1.3rem;
padding: 2rem 2rem;
}

.clinic-notes p {
margin: 0 0 1rem;
text-indent: -1em;
padding-left: 1em;
}

.clinic-notes p:last-child {
margin: 0 0 0;
}

/* 1行目（休診日） */
.clinic-notes1 {
font-weight: bold;
color: #F14D4D;
}

/* 2行目（★） */
.clinic-notes2 {
font-weight: bold;
}

.clinic-notes2 span {
color: #f2b600; /* ★カラー */
}

/* 3行目以降（※） */
.clinic-notes3 span {
color: #F14D4D; /* ※のみ赤 */
font-weight: bold;
}


.web-reservation-banner-wide{
  margin: 22px auto 22px;
        width: 100%;
}

.web-reservation-banner-wide__btn{
  display: flex;
  align-items: center;
  justify-content: center;

  background: linear-gradient(0deg, #30b0bc, #85d2d9);
  color: #ffffff;

  padding: 16px 16px;
  border-radius: 10px;
  text-decoration: none;

  font-size: 1.6rem;
  font-weight: 500;

  border: 1px solid #68bec6;
  transition: 0.3s;
  gap: 12px;
}

.web-reservation-banner-wide__btn::before{
  content: "";
  display: inline-block;

  background: url(../images/ic_calendar.svg) no-repeat center;
  background-size: cover;

  width: 3.2rem;
  height: 3.2rem;

  flex-shrink: 0;
}

/* SPはhoverで浮かせない（誤タップ感防止） */
.web-reservation-banner-wide__btn:hover{
  background: linear-gradient(0deg, #2aa3af, #7ccbd2);
  transform: none;
}



.reservation-notice-wrap{
}

.reservation-notice__title{
  font-size: 1.5rem;
  font-weight: 600;
  margin: 0 0 10px 0;
  line-height: 1.5;
}

.reservation-notice{
  background: #f5f5f5;   /* ← SPでも必ず明記（グレーベタ保証） */
  border-radius: 10px;
  padding: 18px 16px;
}

.reservation-notice__inner{
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.reservation-notice__section h3{
  font-size: 1.45rem;
  margin: 0 0 6px 0;
  font-weight: 600;
  line-height: 1.5;
}

.reservation-notice__section p{
  margin: 4px 0;
  line-height: 1.75;
  font-size: 1.4rem;
}

.reservation-notice__section ul{
  margin: 0;
  padding-left: 0; /* 疑似バレットなので0推奨 */
}

.reservation-notice__section li{
  margin-bottom: 6px;
  line-height: 1.75;
  font-size: 1.4rem;
  position: relative;
  padding-left: 1.5em;
}

.reservation-notice__section li::before{
  content: "";
  position: absolute;
  left: .5rem;
  top: 0.9rem;
  width: 7px;
  height: 7px;
  background: #bababa;
  border-radius: 50%;
}
    

  .web-reservation-banner-pc {
    display: none;
  }
      .web-hours-banner-pc {
    display: none;
  }

  
  /* ハンバーガーボタンの色を青色に変更 */
  .openbtn span {
    background-color: #4b7abe !important;
  }
  .openbtn.active span {
    background-color: #4b7abe !important;
  }
  
  /* ナビ項目を1列に変更 */
  #g-nav.panelactive .navul {
    flex-direction: column !important;
    width: 90%;
  }
  
  #g-nav.panelactive .navulli1 {
    margin: 0 0 0.5rem 0;
    width: calc(100% - 60px);
  }
  
  #g-nav.panelactive .navulli1 a {
    display: block;
    text-align: left;
  }
  
  /* ハンバーガーナビ内の診療時間表スタイル */
  .spnav_timetable .clinic-hours-section {
    margin-bottom: 20px;
  }
  
  .spnav_timetable .clinic-hours-section__title {
    font-size: 1.4rem;
    padding: 7px 10px;
  }
  
  .spnav_timetable .clinic-hours-section .hours-table {
    font-size: 1.3rem;
  }
  
  .spnav_timetable .clinic-hours-section .hours-table .time {
    width: auto;
    font-size: 1.3rem;
    padding: 3px 5px;
  }
  
  .spnav_timetable .clinic-hours-section .hours-table thead th {
    padding: 4px 3px;
    font-size: 1.3rem;
  }
  
  .spnav_timetable .clinic-hours-section .hours-table .open {
    font-size: 1.3rem;
  }
  
  .spnav_timetable .clinic-hours-section__notes {
    font-size: 1.3rem;
    padding: 0 5px;
  }
  
  .spnav_timetable .clinic-hours-section__notes .note-special {
    font-size: 1.3rem;
  }
  
 
  /* 既存の固定フッターを非表示 */
  .spfooternav__w {
    display: none !important;
  }
  
  .sp-fixed-footer {
    display: none !important;
  }
  
  /* 新しい固定フッター */
  .sp-fixed-footer-new {
    display: flex !important;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 9999;
    background: #fff;
    border-top: 1px solid #fff;
    box-shadow: 0 -2px 10px rgba(0,0,0,0.1);
    height: 65px;
  }
  
  .sp-fixed-footer-new__item {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    padding: 8px 5px;
    border-right: 1px solid #eee;
  }
  
  .sp-fixed-footer-new__item:last-child {
    border-right: none;
  }
  
  .sp-fixed-footer-new__icon {
    width: 24px;
    height: 24px;
    margin-bottom: 4px;
  }
  
  .sp-fixed-footer-new__icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }
  
  .sp-fixed-footer-new__text {
    font-size: 1.2rem;
    font-weight: 600;
    line-height: 1.2;
    text-align: center;
    margin-top: .1rem;
  }
  
  /* 電話ボタン（青色） */
  .sp-fixed-footer-new__item--tel {
    background: #4b7abe;
  }
  .sp-fixed-footer-new__item--tel .sp-fixed-footer-new__text {
    color: #ffffff;
  }
  
  /* LINEボタン（緑色） */
  .sp-fixed-footer-new__item--line {
    background: #e7fff1;
  }
  .sp-fixed-footer-new__item--line .sp-fixed-footer-new__text {
    color: #06c755;
  }
  
  /* Web予約ボタン */
  .sp-fixed-footer-new__item--reservation {
    background: linear-gradient(0deg, #30b0bc, #85d2d9);
  }
  .sp-fixed-footer-new__item--reservation .sp-fixed-footer-new__text {
    color: #ffffff;
  }
  /* 診療時間ボタン */
  .sp-fixed-footer-new__item--hours {
    background: #ffffff;
  }
  .sp-fixed-footer-new__item--hours .sp-fixed-footer-new__text {
    color: #239aa6;
  }    
    
  
  .footer6 {
    order: 99; /* スマホでは最後に表示 */
  }
  
  .footer8 {
    order: 1;
  }
  
  /* ページトップボタンの位置調整 */
  #page-top {
    bottom: 75px;
  } 
    
    
    
   

  .hours-table-wrap{
    width: 100%;
  overflow-x: auto; 
  overflow-y: hidden; 
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  }
.hours-table-wrap{
  touch-action: pan-x; /* 横ジェスチャー優先 */
}
  .clinic-hours-section .hours-table{
    font-size: 1.4rem;
    min-width: 720px; 
    width: 100%;
    border-collapse: collapse;
  }


  .clinic-hours-section .hours-table thead th{
    background: #003f73;
    font-weight: 500;
    color: #fff;
    padding: 10px 0;
    font-size: 1.4rem;
  }


  .clinic-hours-section .hours-table th,
  .clinic-hours-section .hours-table td{
    border: 1px solid #ddd;
    text-align: center;
    line-height: 1.2;
    padding: 6px 0;
  }


  .clinic-hours-section .hours-table .time{
    width: 16%;
    height: auto;
    padding: 10px 0;
    font-size: 1.4rem;
    white-space: nowrap;
    background: #f7f7f7;
    font-weight: 600;
  }


  .clinic-hours-section .hours-table .time span{
    display: inline-block;
    transform: rotate(90deg);
  }

  .clinic-hours-section .hours-table td{
    width: 12%;
  }


  .clinic-hours-section .hours-table td.open{
    font-size: 1.4rem;
    letter-spacing: .05em;
    white-space: nowrap;
  }

  .clinic-hours-section .hours-table td.open br{
    display: none;
  }

  .clinic-hours-section .hours-table td.open .notes{
    display: block;
    font-size: 1.1rem;
    margin-top: 6px;
    color: #1e3043;
  }


  .clinic-hours-section__notes{
    margin-top: 10px;
    font-size: 1.6rem;
    color: #c00;
  }

  .clinic-hours-section__notes p{
    margin: 0 0 1rem;
  }

  .clinic-hours-section__notes .note-special{
    color: #1e3043;
    font-size: 1.6rem;
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    flex-direction: column;
  }

  .clinic-hours-section__notes .note-special li{
    width: 100%;
    padding-left: 1em;
    text-indent: -1em;
    line-height: 1.5;
    margin: 0 0 1rem 0;
  }

  .clinic-hours-section__notes .note-special li::before{
    content: "■";
  }
    

    

  .footer-bottom{
    padding: 3rem 0 2rem;
      background: #f9f9f9;
  }

  .footer-bottom__inner{
    width: min(1100px, 92%);
    margin: 0 auto;
    display: flex;
    flex-direction: column;   /* 縦並び */
    gap: 2.2rem;              /* 20remを上書き */
    align-items: stretch;
  }

  /* ① ナビ */
  .footer-bottom__menu{
    order: 1;
    flex: none;
  }

  .footer-bottom__menulist{
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr)); /* ←2列 */
    gap: 1.2rem 1.6rem;
      margin: 0 0 3rem;
  }
  .footer-bottom__menulist li{
    margin: 0 0 0 2rem;
  }
  .footer-bottom__menulist a{
    text-decoration: none;
        font-size: 1.5rem;
        letter-spacing: .02em;
        display: inline-block;
        padding: 0 0 0 1.4rem;
        position: relative;
  }
    .footer-bottom__menulist a::before {
        content: "▲";
        position: absolute;
        top: 50%;
        left: 0;
        transform: translateY(-50%) rotate(90deg);
        font-size: .7rem;
        color: #009cd3;
    }
  .footer-bottom__menulist a::before{
    font-size: .7rem;
    left: 0;
  }

  /* ② 施設基準ボタン */
  .footer-bottom__standards{
    order: 2;
    margin: 0 0 1.6rem 0;
    text-align: center;
  }

  .footer-bottom__standards-btn{
    display: inline-block;
        text-decoration: none;
        font-size: 1.4rem;
        font-weight: 500;
        letter-spacing: .02em;
    padding: 1.2rem 1.6rem 1.2rem 3.4rem;
            box-shadow: 0 0 8px rgb(99 99 99 / 40%);
        border-radius: 4px;
        position: relative;
        color: #003f73;
        background: #ffff;
  }

     .footer-bottom__standards-btn::before {
        content: "▲";
        position: absolute;
        top: 50%;
        left: 2rem;
        transform: translateY(-50%) rotate(90deg);
        font-size: .7rem;
    }
  /* ③ ロゴ・住所・電話 */
  .footer-bottom__info{
    order: 3;
    text-align: center; /* SPは中央寄せが見やすい */
  }

  .footer-bottom__logo img{
    width: 220px; /* 少し小さく */
    display: inline-block;
  }

  .footer-bottom__addr{
    font-size: 1.4rem;
    margin: 1.2rem 0 .8rem;
  }

  .footer-bottom__tel{
            margin: 0;
        font-size: 1.8rem;
        font-weight: 600;
        letter-spacing: .02em;
  }

  .footer-bottom__tel a{
    display: inline-block;
        font-size: 2.2rem;
        font-weight: 600;
  }

    .footer-bottom__tel a::before {
        content: "";
        width: 2rem;
        height: 2rem;
        display: inline-block;
        margin-right: 0.3rem;
        background: url(../images/ic_tel.svg);
    }

  /* ④ copyright */
  .footer-bottom__copy{
    order: 4;
    width: min(1100px, 92%);
    margin: 2rem auto 0;
    font-size: 1.1rem;
    text-align: center;
  }        
}
/* sp */


/*
@keyframes fadeUpAnime{
from {
opacity: 0;
transform: translateY(100px);
}

to {
opacity: 1;
transform: translateY(0);
}

}
*/
@keyframes DownAnime{
from {
opacity: 0;
transform: translateY(-170px);
}
to {
opacity: 1;
transform: translateY(0);
}
}

@keyframes fadeInUp {
to {
opacity: 1;
transform: translateY(0);
}
}	







/* サイトストラップライン */
.site-strapline {
     background: linear-gradient(90deg, #77bbf4 0%, #62b4f9 45%, #43a6f9 100%);
}



/* 診療時間表のヘッダー */
.clinic-hours .hours-table thead {
  background: #0066cc;
}





.reservation-info__w {
  background: #f0f6ff;
  padding: 30px 20px 40px;
  margin: 0 auto;
}


.web-reservation-banner-pc {
  position: fixed;
  top: 300px;
  right: 15px;
  z-index: 999;
  background: #fff;
  border-radius: 10px;
          box-shadow: 5px 5px 10px rgb(164 194 199 / 30%);
  width: 200px;
  text-align: center;
}
.web-reservation-banner-pc__btn:hover{
  background: linear-gradient(0deg, #239aa6, #64c4cc);
  border-color: #239aa6;
  color: #ffffff;
    opacity: 1;
}
.web-reservation-banner-pc__btn {
   display: flex;
    background: linear-gradient(0deg, #30b0bc, #85d2d9);
    color: #ffffff;
    padding: 25px 15px;
    border-radius: 8px;
    text-decoration: none;
    font-size: 1.7rem;
    font-weight: 500;
    transition: background 0.3s;
    border: 1px solid #68bec6;
    flex-direction: column;
    align-items: center;
}

.web-reservation-banner-pc__btn::before {
  content: " ";
	display: inline-block;
	background: url("../images/ic_calendar.svg") no-repeat;
	background-size: cover;
	width: 4rem;
	height: 4rem;
	vertical-align: bottom;
    margin: 0 0 15px;
}




.web-hours-banner-pc{
  position: fixed;
  top: 450px;
  right: 15px;
  z-index: 999;
  border-radius: 10px;
  box-shadow: 5px 5px 10px rgb(164 194 199 / 30%);
  width: 200px;
  text-align: center;
}

.web-hours-banner-pc__btn{
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: #ffffff;
  color: #239aa6;
  padding: 25px 15px;
  border-radius: 8px;
  text-decoration: none;
  font-size: 1.7rem;
  font-weight: 500;
  border: 1px solid #68bec6;
  transition: none;
}

.web-hours-banner-pc__btn:hover{
  background: #e6f9fb;
    border-color: #68bec6;
    opacity: 1;
}




.reservation-info__link{
  box-shadow: 0 6px 16px rgba(0,0,0,.12);
}

.reservation-info__link::after{
  content:"";
  position:absolute;
  inset: 4px;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,.25);
  z-index: 1;
  pointer-events:none;
}
