@charset "utf-8";
@import url("//share.cr-cms.net/hp_agency/hpagency.css");
@import url('https://fonts.googleapis.com/icon?family=Material+Icons');/*-- google マテリアルアイコン --*/
/* CSS Document */


/*-- 色の指定 --*/
:root {
  --first-color: #39B2FF;/*-- メイン色 --*/
  --second-color: #036eb7;/*-- サブ色 --*/
  --accent-color: #a0cc2d;/*-- アクセントカラー --*/
  --baseborder-color: #ccc;/*-- 基本の線の色 --*/
  --border-color: #01315c;/*-- 色付きの線の色 --*/
  --text-color: #333;/*-- テキストの色 --*/
  --bg01-color: #eaf6fc;/*-- 背景色 --*/
  --bg02-color: #F7F7F7;/*-- 背景色 --*/
  --red-color: #d34; /*-- 赤の指定 --*/
}

.pc{display:inline;}
.sp{display:none;}

.ta_c{text-align:center !important;}
.ta_r{text-align:right !important;}
.ta_l{text-align:left !important;}

.mb0{margin-bottom: 0px !important;}
.pb0{padding-bottom: 0px !important;}
.m_auto{margin-left: auto; margin-right: auto;}

.mt10{margin-top: 10px;}
.mb10{margin-bottom: 10px;}
.mt20{margin-top: 20px;}
.mb20{margin-bottom: 20px;}
.mt30{margin-top: 30px;}
.mb30{margin-bottom: 30px;}
.mt40{margin-top: 40px;}
.mb40{margin-bottom: 40px;}

.pt20{padding-top: 10px;}
.pb20{padding-bottom: 10px;}
.pt20{padding-top: 20px;}
.pb20{padding-bottom: 20px;}
.pt30{padding-top: 30px;}
.pb30{padding-bottom: 30px;}
.pt40{padding-top: 40px;}
.pb40{padding-bottom: 40px;}


.fw_b{font-weight: bold;}

strong{
  font-size:1.2em;
  color:var(--first-color);
}

hr{border-style: dotted; color: #ccc; border-width: 1px; margin: 20px 0px;}

.gallery .comment {text-align:center;}

.envelope {
    background: var(--bg01-color);
    border: 1px solid var(--border-color);
    border-radius: 4px;
    margin: 5px 0;
}


/*--リストの装飾--*/
ul.simpleList, ol.orderList { padding-left: 2em; }

ul.simpleList li { list-style-type: disc; padding: 2px; }
ol.orderList li { list-style-type: decimal; padding: 5px; }

ul.markList { padding-left: 3px; }
ul.markList li { list-style-type: none; padding: 5px; }
ul.markList li::before {
    color: var(--red-color);
    content: "»";
    display: inline-block;
    font-size: 115%;
    margin-right: 2px;
}

ol.StyleOrderList {
    counter-reset: number 0;
    list-style: outside none none;
    padding-left: 40px;
    line-height: 2;
}
ol.StyleOrderList li::before {
    background: var(--first-color);
    border-radius: 50%;
    color: #fff;
    content: counter(number, decimal);
    counter-increment: number 1;
    display: inline-block;
    height: 2em;
    margin-left: -40px;
    margin-right: 0.5em;
    text-align: center;
    width: 2em;
    font-family: monospace;
}
ol.StyleOrderList li {
    margin-bottom: 0.4em;
}

ul.StyleCheckList {
    list-style: outside none;
    line-height: 2;
    padding-left: 2.5em;
}
ul.StyleCheckList li {
    position: relative;
}
ul.StyleCheckList li::before {
    display: block;
    content: '';
    position: absolute;
    top: 0.4em;
    left: -2em;
    width: 0.9em;
    height: 0.5em;
    border-left: 4px solid var(--red-color);
    border-bottom: 4px solid var(--red-color);
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
}

ul.StyleIconList {
    list-style: outside none;
    line-height: 2;
    padding-left: 2.2em;
}
ul.StyleIconList li {
    position: relative;
}
ul.StyleIconList li::before ,
ul.StyleIconList li::after {
    display: block;
    content: '';
    position: absolute;
}
ul.StyleIconList li::before {
    top: 0.4em;
    left: -1.9em;
    width: 1.2em;
    height: 1.2em;
    background-color: var(--first-color);
    border-radius: 100%;
}
ul.StyleIconList li::after {
    top: 0.8em;
    left: -1.6em;
    width: 0.3em;
    height: 0.3em;
    border-right: 2px solid #FFF;
    border-bottom: 2px solid #FFF;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
}

/*マーカー*/
span[style*="Lime"] {
    background-color: transparent !important;
    background: linear-gradient(transparent 70%, #AEC 0) repeat scroll 0 0;
}
span[style*="Yellow"] {
    background-color: transparent !important;
    background: linear-gradient(transparent 70%, #FEA 0) repeat scroll 0 0;
}


/*-- hタグの装飾 --*/

/*フォント*/	
#mainArticles h1,#mainArticles h2, #mainServices h2, #mainTopics h2, #listTopics h2,
.mainContents .article h3,.mainContents div.gallery h3,
.mainContents .article h4,.mainContents .article h6 {
   font-family: "Zen Kaku Gothic New", sans-serif;
	font-weight: 500;
}

/*h2*/
#mainArticles h2,
#mainServices h2,
#listTopics h2 {
    background: var(--bg01-color);
    color: var(--second-color);
}

#mainTopics h2{background: transparent;}

/*h3*/
#mainArticles div[id^="blog"] h2,
.mainContents .article h3,
.mainContents div.gallery h3,
#mainServices h2,
#mainTopics h2 {
  font-size: 1.5em;
  color: var(--text-color);
  line-height: 1.5;
  margin: 1.5em 0 1em 0;
  padding: 0.4em 0.6em 0.2em 0.6em;
  letter-spacing: 0.1em;
  border-bottom: 2px solid var(--first-color);
  text-align: left;
}

#mainTopics h2{margin-top: 0;}

#mainArticles div[id^="blog"] h2:after,
.mainContents .article h3:after,
.mainContents div.gallery h3:after,
#mainServices h2:after,
#mainTopics h2:after {
    display: initial;
}

ul.topics li h3 a {
  color: var(--second-color);
}

/*h4*/
.article h4 {
    font-size: 1.4em;
  line-height: 1.6;
  text-align: center;
  margin: 0.5em 0 0.5em 0;
  color: var(--first-color);
  background: none;
  display: block;
  padding: 0.2em 0;
  position: relative;
  font-weight: bold;

  border-radius: 0;
  border: 0px none;
}
.article h4::before {
    position: initial;
    margin: 0;
}


/*h5*/
.article h5 {
}
.article h5:before {
}
/*h6*/
.article h6 {
}
.article h6:before {

}


#mainTopics .listview a,ul.topics li p.more a {background: var(--first-color);}
#mainTopics .listview a:hover,ul.topics li p.more a:hover{background: var(--accent-color);}

a.btn{background: var(--first-color); border-radius: 0; }
a.btn:hover{background: var(--accent-color); border-radius: 0; }

a.btn{padding: 8px; position: relative; display: block; }
a.btn::after{position: absolute; right: 0; top:50%; margin-top: auto; margin-bottom: auto; transform: translate(-50%, -50%); }

.btn_flex{display: flex; flex-wrap:wrap;}
.btn_flex li{width: 50%; padding: 10px; box-sizing: border-box;}

.anchor_link_list{display: flex; flex-wrap:wrap;}
.anchor_link_list li{width: 33%; padding: 10px; box-sizing: border-box;}

#footer{padding: 45px 0 35px 0;}

#footer_body{padding-bottom: 50px; display: initial;}

#footer_body .copyright,
#footer { background-color: var(--second-color); }

#footer_body .copyright {
  padding: 30px 0 5px 0;
  clear: both;
  width: 1024px;
  margin: 0 auto;
  text-align: left;
  position: initial;
  display: block;
}

#footer_body .topMenu li a::before, #footer_body .services li a::before {
  /*--color: var(--first-color);--*/
  content: "";
  margin-right: 0;
}
#footer_body .topMenu li a{padding: 0;}
/*--#footer_body .topMenu li a{ color: var(--first-color);}--*/
#footer_body .topMenu li a:hover{color: var(--second-color);}

#footer_body .topMenu{float: none; display: initial; width: 1024px; margin: 0;}
.footer li{display: inline-block;}

#footer_body .topMenu li a,#footer_body .topMenu li a:hover{background: transparent;}

#wrap_body #topMenu{background: var(--bg02-color);}

#topMenu_outer .topMenu li a{color: var(--text-color); font-weight: 400;}
#topMenu_outer .topMenu li a:hover{background: var(--bg01-color); color: var(--first-color);}
#topMenu{border-bottom: 1px solid var(--first-color);}

ul.topics li p.date{background: var(--accent-color);}


/*-------------------------------------------------
ヘッダー
-------------------------------------------------*/

/*タイトル*/
#title {
    padding: 0;
    margin: 0 auto;
    background-color: #fff;
}
#title #title_outer {
    width: 980px;
    margin: auto;
    background: url(/materials/175988992869101.png) no-repeat center right;
    background-size: 360px auto;
  }


#title h1 {
    background: url(/materials/175972891209201.png) no-repeat center left;
    margin: 0;
    padding: 0;
    text-align: left;
    height: 70px;
    background-size: 330px auto;
}
#title h1 a {
    display: inline-block;
    overflow: hidden;
    text-indent: 110%;
    white-space: nowrap;
    height: 100%;
    width: 330px;
}

#title .description {
    font-size: 14px;
    padding: 2px 10px;
    line-height: 1.6em;
    color: #fff;
    position: absolute;
    top: 0;
}

.article.bg, .gallery.bg{background: var(--bg01-color);}

#mainTopics{background: transparent;}



.article table.schedule,
.article table.schedule th,
.article table.schedule td{
    border:none;
    background:unset;
}

.article table.schedule thead th span{
    box-sizing:border-box;
    background: var(--first-color);
    border-radius: 50%;
    aspect-ratio: 1/ 1;
    line-height: 1em;
    font-weight:normal;
    color:#FFF;
    padding:8px 10px;
}

.article table.schedule thead th:last-child span,
.article table.schedule thead th:nth-child(8) span{
    background:var(--second-color);
}

.article table.schedule tbody tr:first-child {
    border-bottom:1px solid var(--second-color);
}
.article table.schedule thead th:first-child{
	width:20%;
}

.article table.schedule thead th,
.article table.schedule tbody td{
    text-align:center;
}

.article table.schedule tbody th{
    font-weight:normal;
    text-align: left;
    font-size: 115%;
}
/*
.article table.schedule tbody th span.circle::before{
    content:"○";
    font-weight:bold;
    color:var(--first-color);
    margin-right:0.5em;
}

.article table.schedule tbody th span.maru::before{
    content:"●";
    font-weight:bold;
    color:var(--second-color);
    margin-right:0.5em;
}
*/

.article table.schedule tbody td{
    font-weight:bold;
    color:var(--first-color);
    font-size: 130%;
}
.article table.schedule tbody td span{
    font-size: 14px;
}

.article table.schedule tbody td:last-child ,
.article table.schedule  tbody td:nth-child(8) {
    color:var(--second-color);
}


#sideContents{background: var(--bg01-color);}


/*-------------------------------------------
フリーhtml
-------------------------------------------*/
.freeHtml_outer {
    font-size: 18px;
    padding: 30px;
    border-radius: 20px;
    background-color: #fff;
}

.side_info {
    display: flex;
    gap: 1%;
    justify-content:space-between;
    /* align-items:stretch; */
    /*--margin-bottom:40px;--*/
}

.side_info > div {
    width: 34%;
}

.side_info > div.profile {
    width: 25%;
}


.side_info div.photo  img{
    object-fit:cover;
    width:100%;
    /* height:100%; */
    aspect-ratio: 1  / 1;
}

.side_info ul.link {
    display: flex;
    gap: 1em;
    justify-content: center;
}

.side_info ul.link a img {
    max-width: 61px;
}
.side_info ul.link li{border-top:0px none;}
.side_info ul.link li a::before{content: none;}

.side_info h2 img {
    /*--max-width: 150px;--*/
    max-width: 241px;
}

.side_info h2 {
    text-align: center;
}

.side_info p.tel {
    text-align: center;
    font-weight: bold;
    padding: 8px 16px;
    font-size: 120%;
    border: 1px solid;
    margin-top: 5px;
    margin-bottom: 1em;
}

div.hoken {
    display: flex;
    justify-content: space-around;
    align-items: center;
}

.hoken img {
    width: fit-content;
    height: fit-content;
}

div.hoken p {
    background: url(/materials/172560642198605.png) left center no-repeat;
    padding: 8px 0 8px 94px;
}


/*-- ギャラリー 使用医療機器 --*/
.m_devices .gallery_grid li.galleryGrid .image{
    border: 1px solid #ccc;
    border-radius: 10px;
}

.m_devices .gallery_grid li.galleryGrid .image img{
    border-radius: 10px
}
.m_devices ul.galleryGrids .comment{font-weight: normal;}

.m_devices ul.galleryGrids{display: flex; flex-wrap: wrap;}
.m_devices ul.galleryGrids li{position: relative !important; top:0 !important; left:0 !important;} 


@media only screen and (max-width: 600px) {

    #mainTopics{padding-top: 20px;}

    #title h1{background-size: 240px auto;}
    #title h1 a{width: 240px;}

     body { font-size: 16px; }

    #title #title_outer { background: none; }

    .btn_flex{display: block;}
    .btn_flex li{width: 100%; padding: 10px 0; }
    .btn_flex li a{text-align: left;}

    .anchor_link_list{display: block;}
    .anchor_link_list li{width: 100%; display: block; padding: 5px 0;}
/*--
    a.btn{padding: 8px; position: relative; display: block; }
    a.btn::after{position: absolute; right: 0; top:50%; margin-top: auto; margin-bottom: auto; transform: translate(-50%, -50%); }
--*/

    /*h3*/
    #mainArticles div[id^="blog"] h2,
    .mainContents .article h3,
    .mainContents div.gallery h3,
    #mainServices h2 {
    margin-top: 0;
    }

    .article table.schedule{
    width: 100%;
    font-size:90%;
    border:none;
    /*border-bottom: 1px solid #CCC;
    border-top: 1px solid #CCC;*/
    }

.article table.schedule thead tr th:first-child {
    /*--display: none;--*/
    /*--width: calc(100% / 9);--*/
    width: auto;
    }

.article table.schedule tbody tr th {
    width: 100%;
    padding: 4px;
    /*border-top: 1px solid #CCC;
    border-bottom: 1px solid #CCC;*/
      background: #fdfaee;
    }

.article table.schedule thead tr, .article table.schedule tbody tr {
    /*--display: flex;
    flex-wrap: wrap;--*/
    }

.article table.schedule thead th, .article table.schedule tbody td {
    /*--width: calc(100% / 9);--*/
    /*--padding:8px;--*/
    padding: 2px;
    }

.article table.schedule tbody tr th br {
    display: none;
    }
.article table.schedule thead th {
    /*--padding: 8px 4px;--*/
    padding: 2px;
    }
.article table.schedule thead th span{
    box-sizing:border-box;
    background: var(--first-color);
    border-radius: 50%;
    aspect-ratio: 1/ 1;
 
    font-weight:normal;
    color:#FFF;
    /*--padding:8px 10px;--*/
    padding:4px 5px;
    }

.article table.schedule thead th:last-child span,
.article table.schedule thead th:nth-child(8) span{
    background:var(--second-color);
    }
.article table.schedule tbody th span{
    margin-right:0.5em;
    }

.article table.schedule tbody th span.circle::before{
    content:"○";
    font-weight:bold;
    color:var(--first-color);
    }

.article table.schedule tbody th span.maru::before{
    content:"●";
    font-weight:bold;
    color:var(--second-color);
    }

.article table.schedule tbody td{
    font-weight:bold;
    color:var(--first-color);
    text-align: center;
    font-size: 90%;
    /*border-left: 1px dotted #CCC;*/
    }

.article table.schedule th, .article table.schedule td {
    border: none;
    }
    /*
    .article table.schedule tbody td:last-child {
        border-right: 1px dotted #CCC;
    }*/
    .side_info > div.profile {
    width: 100%;
    }

    .side_info {
    display: flex;
    flex-direction:column;
    gap: 1%;
    justify-content:space-between;
    /* align-items:stretch; */
    margin-bottom:40px;
    background: #FFF;
    padding: 20px 4% 0;
    }

    .side_info .photo {
        order:4;
    }

    .side_info .profile {
        order:2;
        text-align: center;
    }

    .map {
        order:3;
    }

    .side_info div {
        width: 100%;
        margin-bottom: 24px;
    }

    .side_info .photo img {
        width: 100%;
    }

    /*--
    .side_info .profile h2 img {
        max-width: 160px;
    }--*/

    .side_info ul.link {
        display: flex;
        gap: 1.5em;
        justify-content: center;
    }

    .side_info ul.link a img {
        max-width: 61px;
    }

    .side_info p.tel {
            text-align: center;
        font-weight: bold;
        padding: 8px 16px;
        font-size: 120%;
        border: 1px solid;
        margin-bottom: 1em;
    }

    div.hoken {
        display: flex;
        flex-direction:column;
        justify-content: space-around;
        align-items: center;
        gap:1em;
        padding:20px 4%;
    }

    .hoken img {
        width: fit-content;
        height: fit-content;
    }

    div.hoken p {
        background: url(/materials/172560642198605.png) left center no-repeat;
        padding: 8px 0 8px 94px;
    }

    #footer_body .topMenu{width: 100%;}
    #footer{padding-left: 10px; padding-right: 10px;}
    #footer_body .copyright{width: 100%;}

    #mainArticles h2{font-size: 1.7em;}
    .mainContents .article h3{font-size: 1.3em; padding: 0.4em 0.3em 0.2em 0.3em;}
    .article h4 {font-size: 1.2em;}



    /* 画面下部固定のリンクパーツ */
    /*#bottomLink {
    display: block;
    position: fixed;
    left: 0;
    bottom: 0;
    width: 100%;
    text-align: center;
    z-index: 1000;
    height: 50px;
    overflow: hidden;
    }
    #bottomLink a {
    display: block;
    padding: 3px 0;
    color: #fff;
    background: var(--accent-color);
    text-decoration: none;
    font-size: 100%;
    line-height: 1.4;
    height:100%;
    }
    #bottomLink a span {
    font-size:85%;
    display:block;
    }*/
    /* ボタンサイズ分の画面下部余白 */
    #wrap {
        margin-bottom: 50px;
    }
}




.mainImage_picture{width: 100%;}

/*メインイメージ*/
div#mainImage_body {
justify-content: center;
align-items: center;
/*--
max-height: calc(100vh - 160px); 
overflow: hidden;--*/

height: auto !important; /*-- 20251014追加 --*/

}
.mainImage img {
width: 100%;
/*--
max-width: none;
max-height: calc(100vh - 160px); 
object-fit: cover;--*/

object-fit: contain; /*-- 20251014追加 --*/
height: auto !important; /*-- 20251014追加 --*/

}

#slider .slick-slide {
justify-content: center;
align-items: center;
overflow: hidden;
/*--height: calc(100vh - 160px) !important;--*/

height: auto !important; /*-- 20251014追加 --*/
}
.mainImage #slider li img {
max-width: 100%;
width: 100%;

/*--
height: calc(100vh - 160px); 
object-fit: cover;--*/

height: auto !important; /*-- 20251014追加 --*/

}

/*--
@media only screen and (max-width: 600px) {
div#mainImage_body, .mainImage img {
max-height: calc(100vh - 56px);
}
#slider .slick-slide, .mainImage #slider li img {
height: calc(100vh - 56px) !important;
}
  
}
--*/

/*▼スマホ追従ボタン*/
 .contact_box {
  height: 60px;
}

  #bottomLink{
   display: block;
    position: fixed;
    right: 0;
    bottom: 3px;
    width: 50%;
    text-align: center;
    z-index: 1000;
    height: 60px;
    line-height: 0px;
    overflow: hidden;
    padding: 3px;
  }
  #bottomLink a {
    display: block;
    padding: 0;
    color: #fff;
    background: #a0cc2d;
    text-decoration: none;
    font-size: 18px;
    line-height: 0px;
    height: 100%;
    border-radius: 10px;
    margin-right: 2px;
  }
  #bottomLink a span,
	#bottomLink2 a span{
    font-size: 16px;
    display: inline-block;
    /*padding-right: 26px;*/
    position: relative;
    line-height: 60px;
  }
  #bottomLink a span::after,
  #bottomLink2 a span::after{
    position: absolute;
    top: 9px;
    right: 0;
    display: inline-block;
    content: "";
    width: 20px;
    height: 20px;
    /*background: url(/materials/170184460287001.png) no-repeat;*/
    background-size: 20px;
    margin: 0 4px;
  }
  
  #bottomLink2 {
    display: block;
    position: fixed;
    left: 0;
    bottom: 3px;
    width: 50%;
    text-align: center;
    z-index: 1000;
    height: 60px;
    overflow: hidden;
    padding: 3px;
}
  
  #bottomLink2 a {
    display: block;
    padding: 0;
    color: #fff;
    background: #a0cc2d;
    text-decoration: none;
    font-size: 18px;
    line-height: 0px;
    height: 100%;
    border-radius: 10px;
    margin-right: 2px;
}

 @media (min-width: 600px) {
    /* 横幅が800px以上の場合に適用するスタイル */
    #bottomLink { display: none; }
    #bottomLink2 { display: none; }
 }

a.btn-reserve {
    font-size: 20px;
    color: #fff;
    font-weight: bold;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    display: block;
    position: fixed;
    top: 160px;
    right: 0;
    width: 135px;
    background: #a0cc2d;
    padding: 20px 15px;
    box-sizing: border-box;
    z-index: 9999;
    border-radius: 30px;
    right: -25px;
}


@media (max-width: 600px) {
    /* 横幅が600px以下の場合に適用するスタイル */
    a.btn-reserve { display: none; }
 }

.gallery ul.galleryGrids .comment {
    line-height: 20px;
}
