@charset "utf-8";

/*========================================================================================================================


  ◇◆◇ レイアウト ◇◆◇
  
  1.  header
  2.  nav
  3.  contents
  4.  footer
  99. parts  
  
  
========================================================================================================================*/

/*----------------------------------------------------------------------------------------------------

  1.  header
  
----------------------------------------------------------------------------------------------------*/

@media print,screen and (min-width:768px) {
  #hd-warp {
    position:relative;
    background-color:#f4f3f9;
    padding-top:1.5em;
  }
  
  header {
    position:relative;
  }
  
  #hd-warp:after {
    content:"";
    width:100%;
    height:70px;
    background-color:#fff;
    vertical-align:bottom;
    display:block;
  }
}
  
.hd__logo-link {
  display:inline-block;
  vertical-align:bottom;
  position:relative;
  z-index:1;
}

.hd__logo:before {
  content:"";
  display:block;
  width:80px;
  height:80px;
  margin-left:auto;
  margin-right:auto;
  background:url(../image/logo.png) no-repeat center top;
  background-size:contain;
  border-radius:100%;
  background-color:#fff;
}

.hd__logo-en {
  width:240px;
  height:12px;
  margin-left:auto;
  margin-right:auto;
  margin-top:15px;
  background:url(../image/logo-en.png) no-repeat center top;
  background-size:contain;
}

@media screen and (max-width:767px) {
  header {
    background-color:#fff;
    z-index:90;
    position:relative;
    box-sizing:border-box;
    padding:1em;
  }

  .hd__logo:before {
    width:60px;
    height:60px;
  }

  .hd__logo-en {
    width:240px;
    height:12px;
    margin-top:0.7em;
  }
}

@media screen and (max-width:640px) {
  header {
    padding-left:0.7em;
    padding-right:0.7em;
  }
}

@media screen and (max-width:500px) {
  .hd__logo:before {
    width:50px;
    height:50px;
  }

  .hd__logo-en {
    width:180px;
    height:9px;
  }
}


/*----------------------------------------------------------------------------------------------------

  2.  nav
  
----------------------------------------------------------------------------------------------------*/

#glNav {
  font-family:"NotoSerif";
  font-weight:100;
}

#glNav a,
#glNav a:visited,
#glNav a:hover { color:#fff; text-decoration:none; }

@media print,screen and (min-width:768px) {
  #glNav {
    background:rgba(50,45,105,0.9);
    width:100%;
    position:fixed;
    top:0;
    z-index:100;
    min-width:1160px;
  }

  #glNav ul {
    width:1100px;
    margin-left:auto;
    margin-right:auto;
    display:table;
    list-style:none;
    font-size:125.0%;
    transition:font-size 0.2s ease;
  }

  #glNav.scroll ul {
    font-size:112.5%;
  }

  #glNav li {
    display:table-cell;
    text-align:center;
    position:relative;
    overflow:hidden;
  }
  
  #glNav li a {
    display:block;
    padding:15px 15px 20px 15px;
    transition:padding 0.2s ease;
    z-index:2;
    position:relative;
  }
  
  #glNav li:before {
    content:"";
    width:100%;
    height:100%;
    background-color:#695a9b;
    position:absolute;
    left:0;
    top:-100%;
  }
  
  #glNav.scroll li a {
    padding:12px 12px 17px 12px;
  }
  
  #glNav li:not(:first-child) a:before {
    content:"";
    display:inline-block;
    width:1px;
    height:1em;
    background-color:rgba(255,255,255,0.15);
    position:absolute;
    left:0;
    top:50%;
    margin-top:-0.5em;
  }

  #glNav li a { 
    transition:background-color 0.2s ease;
  }
  
  .no-csstransitions #glNav li a:hover,
  #glNav li.active a {
    background-color:#826eb4;
  }

  #glNav li:before { 
    transition:top 0.2s ease;
  }
  
  #glNav li:hover:before {
    top:0;
  }
  
  #glNav li a:hover:before,
  #glNav li:hover + li a:before,
  #glNav li.active + li a:before,
  #glNav li.active a:before {
    display:none;
  }
}

@media screen and (max-width:767px) {
  #glNav {
    display:none;
    width:100%;
    position:absolute;
    left:0;
    top:0;
    z-index:101;
  }
  
  #glNav ul {
    padding-top:2.5em;
    padding-bottom:1.5em;
    font-size:137.5%;
  }
  
  #glNav li a {
    padding:0.5em 0;
    display:block;
  }
}

@media print {
  #glNav {
    position:relative;
  }
}


/*-----------------------------------------------------------------------------------
  スマホ用Navボタン
-----------------------------------------------------------------------------------*/

@media print,screen and (min-width:768px) {
  .spNav-btn {
    display:none;
  }
}

@media screen and (max-width:767px) {
  .spNav-btn {
    text-align:center;
    position:absolute;
    right:1em;
    top:1.7em;
    box-sizing:border-box;
    z-index:105;
  }
  
  .spNav-btn_ic,
  .spNav-btn_ic span,
  .spNav-btn_ic span:before,
  .spNav-btn_ic span:after {
    display:inline-block;
    transition:all .4s;
    box-sizing:border-box;
  }
  .spNav-btn_ic {
    position:relative;
    width:32px;
    height:24px;
  }
  
  .spNav-btn_ic span,
  .spNav-btn_ic span:nth-of-type(2),
  .spNav-btn_ic span:nth-of-type(3) {
    position:absolute;
    left:0;
    width:100%;
    height:2px;
    background-color:#826eb4;
    border-radius:1px;
  }
  .spNav-btn_ic span:nth-of-type(1) {
    top:0;
  }
  .spNav-btn_ic span:nth-of-type(2) {
    top:11px;
  }
  .spNav-btn_ic span:nth-of-type(3) {
    bottom:0;
  }
  
  .spNav-btn.close .spNav-btn_ic span:nth-of-type(1),
  .spNav-btn.close .spNav-btn_ic span:nth-of-type(2),
  .spNav-btn.close .spNav-btn_ic span:nth-of-type(3) {
    background-color:#fff;
  }
  
  .spNav-btn.close .spNav-btn_ic span:nth-of-type(1) {
    -webkit-transform:translateY(11px) rotate(-315deg);
    transform:translateY(11px) rotate(-315deg);
  }
  .spNav-btn.close .spNav-btn_ic span:nth-of-type(2) {
    opacity:0;
  }
  .spNav-btn.close .spNav-btn_ic span:nth-of-type(3) {
    -webkit-transform:translateY(-11px) rotate(315deg);
    transform:translateY(-11px) rotate(315deg);
  }
}

@media screen and (max-width:500px) {
  .spNav-btn_ic {
    position:relative;
    width:28px;
    height:20px;
  }

  .spNav-btn_ic span:nth-of-type(2) {
    top:9px;
  }
  
  .spNav-btn.close .spNav-btn_ic span:nth-of-type(1) {
    -webkit-transform:translateY(9px) rotate(-315deg);
    transform:translateY(9px) rotate(-315deg);
  }
  .spNav-btn.close .spNav-btn_ic span:nth-of-type(3) {
    -webkit-transform:translateY(-9px) rotate(315deg);
    transform:translateY(-9px) rotate(315deg);
  }
}


/*----------------------------------------------------------------------------------------------------

  3.  contents
  
----------------------------------------------------------------------------------------------------*/

@media screen and (max-width:767px) {
  .ct-ov {
    display:none;
    position:fixed;
    top:0;
    left:0;
    z-index:99;
    width:100%;
    height:100%;
    background:rgba(50,45,105,0.9);
  }
}

@media print {
  .ct-ov {
    display:none !important;
  }
}


/*-----------------------------------------------------------------------------------
  ページ見出し
-----------------------------------------------------------------------------------*/

.l-pg-headline {
  font-size:225.0%;
  font-family:"NotoSerif";
  font-weight:300;
  line-height:1;
  color:#322d69;
  padding-top:50px;
}

.l-pg-headline small {
  display:inline-block;
  border-top:1px solid #a192c7;
  font-size:55%;
  font-weight:100;
  color:#806cb2;
  padding-top:0.5em;
  margin-top:0.75em;
  box-sizing:border-box;
}

@media screen and (max-width:767px) {
  .l-pg-headline { font-size:212.5%; padding-top:0.5em; }
}

@media screen and (max-width:640px) {
  .l-pg-headline { font-size:187.5%; }
}

@media screen and (max-width:500px) {
  .l-pg-headline { font-size:175.0%; padding-top:0.3em; }
}


/*-----------------------------------------------------------------------------------
  パンくず
-----------------------------------------------------------------------------------*/

.pan {
  width:1100px;
  margin-left:auto;
  margin-right:auto;
  margin-top:-110px;
  padding-bottom:1em;
  text-align:left;
  font-size:87.5%;
  box-sizing:border-box;
}

.pan li {
  display:inline-block;
}

.pan li a {
  display:block;
  position:relative;
  margin-right:0.25em;
  padding-right:1em;
}

.pan li a:after {
  content:"";
  display:inline-block;
  width:1em;
  height:1em;
  border-right:solid 1px #a192c7;
  -ms-transform:rotate(45deg);
  -webkit-transform:rotate(45deg);
  transform:rotate(45deg);
  position:absolute;
  right:0;
  top:50%;
  margin-top:-0.75em;
}

.pan li a,
.pan li a:visited  { color:#806cb2; text-decoration:underline; }
.pan li a:hover    { color:#a192c7; text-decoration:none; }

@media screen and (max-width:767px) {
  .pan {
    display:none;
  }
}


/*-----------------------------------------------------------------------------------
  大見出し
-----------------------------------------------------------------------------------*/

.l-headline {
  font-size:225.0%;
  font-family:"NotoSerif";
  font-weight:300;
  line-height:1;
  color:#322d69;
}

@media screen and (max-width:767px) {
  .l-headline { font-size:212.5%; }
}

@media screen and (max-width:640px) {
  .l-headline { font-size:187.5%; }
}

@media screen and (max-width:500px) {
  .l-headline { font-size:175.0%; }
}


/*-----------------------------------------------------------------------------------

  診療時間
  
-----------------------------------------------------------------------------------*/

.hrsTbl {
  border-collapse:separate;
  border-spacing:0;
  margin-top:0.5em;
}
  
.hrsTbl thead th {
  color:#fff;
  text-align:center;
  background-color:#9b8bc3;
  border-left:1px solid rgba(255,255,255,0.25);
  white-space:nowrap;
}

.hrsTbl thead th:first-child { border-radius:3px 0 0 0; border-left:0; }
.hrsTbl thead th:last-child { border-radius:0 3px 0 0; }

.hrsTbl th,
.hrsTbl td {
  text-align:center;
  vertical-align:middle;
  padding:0.75em 0.5em;
}

.hrsTbl thead th,
.hrsTbl thead td {
  padding:0.5em;
}

.hrsTbl th {
  font-weight:normal;
}

.hrsTbl tbody th,
.hrsTbl tbody td {
  border-left:1px solid #e3e3e3;
  background-color:#fff;
  line-height:1.2;
}

.hrsTbl tbody tr th:first-child { border-left:2px solid #bbb0d6; }
.hrsTbl tbody tr td:last-child { border-right:2px solid #bbb0d6; }

.hrsTbl tbody .pm th,
.hrsTbl tbody .pm td {
  border-top:1px solid #e3e3e3;
  border-bottom:2px solid #bbb0d6;
}

.hrsTbl tbody .pm th { border-radius:0 0 0 3px; }
.hrsTbl tbody .pm td:last-child { border-radius:0 0 3px 0; }

@media screen and (max-width:767px) {
  .hrsTbl thead th,
  .hrsTbl thead td {
    padding:1.5% 2%;
  }
}

@media screen and (max-width:500px) {
  .hrsTbl {
    font-size:93.8%;
  }
}


/*-----------------------------------------------------------------------------------
  マーク
-----------------------------------------------------------------------------------*/

.hrs-mk {
  text-indent:100%;
  white-space:nowrap;
  overflow:hidden;
  display:inline-block;
  line-height:0;
  vertical-align:middle;
  margin-bottom:2px;
  box-sizing:border-box;
  width:18px;
  height:18px;
  position:relative;
}

@media screen and (max-width:500px) {
  .hrs-mk {
    width:16px;
    height:16px;
  }
}


/* 診療 ----------------------------------------*/

.hrs-mk1 {
  border:2px solid #9b8bc3;
  border-radius:100%;
}


/* 休診 ----------------------------------------*/

.hrs-mk0 {
  width:20px;
  height:20px;
}

@media screen and (max-width:500px) {
  .hrs-mk0 {
    width:18px;
    height:18px;
  }
}

.hrs-mk0:before, .hrs-mk0:after {
  display:block;
  content:"";
  width:3px;
  height:100%;
  -webkit-transform:rotate(45deg);
  -o-transform:rotate(45deg);
  transform:rotate(45deg);
  background-color:#b2b2b2;
  position:absolute;
  top:0;
  left:50%;
  margin-left:-2px;
  border-radius:3px;
}

.hrs-mk0:after{
  -webkit-transform:rotate(-45deg);
  -o-transform:rotate(-45deg);
  transform:rotate(-45deg);
}


/*----------------------------------------------------------------------------------------------------

  4. footer
  
----------------------------------------------------------------------------------------------------*/

footer {
  background-color:#826eb4;
}

@media print,screen and (min-width:768px) {
  footer {
    font-size:93.8%;
  }

  #ft {
    width:1100px;
    margin-left:auto;
    margin-right:auto;
    padding-top:30px;
    padding-bottom:30px;
  }
}

@media screen and (max-width:767px) {
  #ft {
    padding:1em;
  }
}

@media screen and (max-width:500px) {
  #ft {
    padding:1em 0.7em 0.7em 0.7em;
  }
}


/*-----------------------------------------------------------------------------------
  アドレス
-----------------------------------------------------------------------------------*/

.ft__ad {
  color:#fff;
  position:relative;
}

.ft__ad__logo {
  background:url(../image/ft-logo.png) no-repeat center center;
  background-size:contain;
}

.ft__ad__txt .l-tel--no {
  color:#fff;
}
  
@media print,screen and (min-width:768px) {
  .ft__ad {
    width:620px;
    float:left;
    text-align:left;
    padding-top:2em;
  }

  .ft__ad__logo {
    width:270px;
    height:100%;
    position:absolute;
    left:0;
    top:0.25em;
  }
  
  .ft__ad__txt {
    padding-left:310px;
    box-sizing:border-box;
  }
  
  .ft__ad__txt .l-tel {
    padding-left:0;
  }
  
  .ft__ad__txt .l-tel--no {
    padding-left:0;
    font-size:100%;
    font-family:inherit;
    font-weight:normal;
    line-height:inherit;
  }
  
  .ft__ad__txt .l-tel--ic {
    width:auto;
    height:auto;
    background:none;
    text-indent:inherit;
    white-space:inherit;
    overflow:inherit;
    position:inherit;
    top:inherit;
    left:inherit;
  }
}

@media screen and (max-width:767px) {
  .ft__ad {
    padding-top:1em;
  }
  
  .ft__ad__logo {
    width:100%;
    height:125px;
  }
  
  .ft__ad__txt {
    padding-top:1.35em;
    padding-bottom:1em;
  }
  
  .ft__ad__txt .l-tel {
    margin-top:0.75em;
    margin-bottom:0.75em;
  }
  
  .ft__ad__txt .l-tel--ic {
    background-image:url(../image/icon/tel-white.png);
  }

  .ft__ad__txt .l-tel--taptocall:before {
    background:#fff;
    color:#806cb2;
  }
  
  .ft__ad__txt .l-tel--taptocall:after {
    border-left:1em solid #fff;
  }
}

@media screen and (max-width:500px) {
  .ft__ad {
    padding-top:0.5em;
  }
  
  .ft__ad__logo {
    height:100px;
  }
  
  .ft__ad__txt {
    padding-top:0.75em;
    padding-bottom:0.5em;
  }
}


/*-----------------------------------------------------------------------------------
  診療時間
-----------------------------------------------------------------------------------*/

.ft__hrsTbl thead th {
  background-color:#a596c9;
}

.ft__hrsTbl tbody tr th:first-child { border-left:0; }
.ft__hrsTbl tbody tr td:last-child { border-right:0; }

.ft__hrsTbl tbody .pm th,
.ft__hrsTbl tbody .pm td {
  border-bottom:0;
}

@media print,screen and (min-width:768px) {
  .ft__hrsTbl {
    width:450px;
    float:right;
  }
}

@media screen and (max-width:767px) {
  .ft__hrsTbl {
    font-size:93.8%;
  }
}


/*-----------------------------------------------------------------------------------
  SSL・copyright
-----------------------------------------------------------------------------------*/

.ft-btm {
  color:#fff;
}

.ft-btm .ssl {
  display:-webkit-box;
  display:-ms-flexbox;
  display:flex;
  -webkit-box-align:center;
  -ms-flex-align:center;
  align-items:center;
  text-align:left;
}

.ft-btm .ssl form {
  line-height:0;
}

.ft-btm .ssl p {
  padding-left:1em;
}

.copyright_ic {
  font-family:"Verdana";
}

@media print,screen and (min-width:768px) {
  .ft-btm {
    border-top:1px solid rgba(255,255,255,0.15);
  }

  .ft-btm .inner {
    width:1100px;
    margin-left:auto;
    margin-right:auto;
    display:-webkit-box;
    display:-ms-flexbox;
    display:flex;
    -webkit-box-pack:justify;
    -ms-flex-pack:justify;
    justify-content:space-between;
    -webkit-box-align:end;
    -ms-flex-align:end;
    align-items:flex-end;
    padding:1.5em 0;
  }
  
  .copyright small {
    padding-left:1em;
  }
}

@media screen and (max-width:767px) {
  .ft-btm .ssl {
    padding:0.5em 1em 1.5em 1em;
  }
  
  .ft-btm .ssl .pc-view {
    display:none;
  }
  
  .copyright {
    padding:1em;
    border-top:1px solid rgba(255,255,255,0.15);
  }
  
  .copyright small {
    display:none;
  }
}


/*-----------------------------------------------------------------------------------
  pagetop
-----------------------------------------------------------------------------------*/

.page-top {
  display:none;
}

@media screen {
  .page-top {
    z-index:90;
    position:fixed;
    right:15px;
    bottom:15px;
    display:inline-block;
    display:none;
  }
    
  .page-top a {
    text-indent:100%;
    white-space:nowrap;
    overflow:hidden;
    text-decoration:none;
    color:#fff;
    display:block;
    background-color:#695a9b;
    text-align:center;
    width:54px;
    height:54px;
    border-radius:100%;
    position:relative;
    transition:background-color 0.2s ease;
  }
  
  .page-top a:after {
    content:"";
    display:inline-block;
    width:12px;
    height:12px;
    border-top:solid 1px #fff;
    border-left:solid 1px #fff;
    -ms-transform:rotate(45deg);
    -webkit-transform:rotate(45deg);
    transform:rotate(45deg);
    position:absolute;
    left:50%;
    top:50%;
    margin-top:-4px;
    margin-left:-6px;
  }
}

@media print,screen and (min-width:768px) {
  .page-top:hover a {
    background-color:#9b8bc3;
  }
}

@media screen and (max-width:767px) {
  .page-top {
    right:0.7em;
    bottom:0.7em;
  }
}

@media screen and (max-width:500px) {
  .page-top a {
    width:44px;
    height:44px;
  }
  
  .page-top a:after {
    width:8px;
    height:8px;
    margin-top:-3px;
    margin-left:-4px;
  }
}

@media print {
  .page-top {
    display:none !important;
  }
}


/*----------------------------------------------------------------------------------------------------

  99. parts
  
----------------------------------------------------------------------------------------------------*/

/*-----------------------------------------------------------------------------------
  tel
-----------------------------------------------------------------------------------*/

.l-tel {
  display:inline-block;
  position:relative;
  line-height:1;
}

.l-tel--no {
  display:inline-block;
  position:relative;
  font-size:225.0%;
  font-family:"NotoSerif";
  font-style:normal;
  font-weight:400;
  padding-left:52px;
  color:#b59a34;
}

.l-tel--ic {
  text-indent:100%;
  white-space:nowrap;
  overflow:hidden;
  display:inline-block;
  width:42px;
  height:100%;
  background-image:url(../image/icon/tel.png);
  background-repeat:no-repeat;
  background-position:center center;
  background-size:contain;
  position:absolute;
  left:0;
  top:1px;
}

@media print,screen and (min-width:768px) {
  .l-tel {
    padding-left:147px;
  }

  .l-tel--txt {
    text-indent:100%;
    white-space:nowrap;
    overflow:hidden;
    display:inline-block;
    width:132px;
    height:50px;
    background:url(../image/icon/tel--txt.png) no-repeat left center;
    position:absolute;
    left:0;
    top:50%;
    margin-top:-26px;
  }
}

@media screen and (max-width:767px) {
  .l-tel--no {
    font-size:200.0%;
    padding-left:46px;
  }

  .l-tel--ic {
    width:38px;
  }
  
  .l-tel--txt {
    display:block;
    font-size:87.5%;
    padding-bottom:0.5em;
    color:#b59a34;
  }

  .l-tel--taptocall {
    display:inline-block;
    position:relative;
    padding-left:6.75em;
  }

  .l-tel--taptocall:before,
  .l-tel--taptocall:after {
    position:absolute;
    left:0;
    top:50%;
    margin-top:-0.85em;
    font-size:75.0%;
  }
  
  .l-tel--taptocall:before {
    content:"Tap to Call";
    width:7em;
    height:2em;
    background:#d2bd70;
    color:#fff;
    text-align:center;
    border-radius:2px 0 0 2px;
    line-height:2.15em;
    white-space:nowrap;
  }
  
  .l-tel--taptocall:after {
    content:"";
    left:7em;
    box-sizing:border-box;
    width:2em;
    height:2em;
    border:1em solid transparent;
    border-left:1em solid #d2bd70;
  }
}

@media screen and (max-width:500px) {
  .l-tel--no {
    font-size:175.0%;
    padding-left:40px;
  }
  
  .l-tel--ic {
    width:32px;
  }
}

@media screen and (max-width:420px) {
  .l-tel--no {
    font-size:156.2%;
    padding-left:35px;
  }
  
  .l-tel--ic {
    width:27px;
  }
  
  .l-tel--taptocall {
    padding-left:6.25em;
  }
  
  .l-tel--taptocall:before,
  .l-tel--taptocall:after {
    font-size:68.8%;
  }
}


/*-----------------------------------------------------------------------------------
  ボタン
-----------------------------------------------------------------------------------*/

.l-Btn {
  -webkit-appearance:none;
  -moz-appearance:none;
  appearance:none;
  display:inline-block;
  box-sizing:border-box;
  border:none;
  margin:0;
  outline:none;
  text-align:center;
  text-decoration:none;
  font-size:inherit;
  cursor:pointer;
  
  border-radius:3px;
  position:relative;
  padding:0.5em 2em;
  border-width:1px;
  border-style:solid;
  transition:background-color 0.2s ease;
}
.l-Btn,
.l-Btn:hover
.l-Btn a,
.l-Btn a:hover {
  text-decoration:none;
}

.l-Btn span {
  display:inline-block;
  position:relative;
  line-height:1;
}

.l-Btn span:not(.ic-none) {
  padding-right:1.25em;
}

.l-Btn span:not(.ic-none):after {
  content:"";
  display:inline-block;
  width:0.4em;
  height:0.4em;
  border-top:solid 1px #fff;
  border-right:solid 1px #fff;
  -ms-transform:rotate(45deg);
  -webkit-transform:rotate(45deg);
  transform:rotate(45deg);
  position:absolute;
  right:0;
  top:50%;
  margin-top:-0.2em;
  transition:right 0.2s ease;
}

@media print,screen and (min-width:768px) {
  .csstransitions .l-Btn:hover span:not(.ic-none):after {
    right:-0.5em;
  }
}


/* 青 ----------------------------------------*/

.l-Btn--blue { background-color:#4e83bf; border-color:#4e83bf; }
@media print,screen and (min-width:768px) {
  .l-Btn--blue:hover { background-color:#4aabc3; border-color:#4aabc3; }
}

.l-Btn--blue,
.l-Btn--blue:visited,
.l-Btn--blue:hover,
.l-Btn--blue a,
.l-Btn--blue a:visited,
.l-Btn--blue a:hover {
  color:#fff;
}

