@charset "UTF-8";
/*
Theme Name: nagoya
*/
/*==================================================
1.leyout 
==================================================*/
/*--------------------------------------
html,body,wrapper
----------------------------------------*/
html {
  line-height: 1.6;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 62.5%;
}

.l-wrapper {
  width: 100%;
  min-width: 1400px;
}

@media all and (max-width: 767px) {
  .l-wrapper {
    min-width: 320px;
    margin-top: 60px;
  }
}

/*--------------------------------------
l-header
----------------------------------------*/
.l-header {
  position: sticky;  /* 上部に追従固定 */
  top: 0;            /* 画面の一番上に固定 */
  z-index: 10000;
  padding: 10px 0;
  background: #fff;
  color: #4A2400;
  box-shadow: 0px 1px 38.27px 4.73px rgba(0, 0, 0, 0.16);
}

@media all and (max-width: 767px) {
  .l-header {
    position: fixed;
    left: 0;
    top: 0;
    display: flex;
    align-items: center;
    height: 60px;
  }
}

.l-header-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  max-width: 1600px;
  margin: 0 auto;
}

@media all and (max-width: 767px) {
  .l-header-row {
    padding: 0 15px;
  }
}

.l-header-ttl {
  padding-left: 55px;
}

@media all and (max-width: 767px) {
  .l-header-ttl {
    width: 60%;
    padding: 0;
  }
}

@media all and (max-width: 767px) {
  .l-header-side {
    transition: opacity .4s;
    opacity: 0;
    pointer-events: none;
    display: flex;
    flex-direction: column;
    position: fixed;
    left: 0;
    top: 60px;
    height: calc(100% - 60px);
    background: #fff;
  }
  .l-header-side.-show {
    opacity: 1;
    pointer-events: auto;
    overflow-y: auto;

  }
}

.l-header-info {
  display: flex;
  align-items: center;
  margin-bottom: 25px;
}

@media all and (max-width: 767px) {
  .l-header-info {
    order: 2;
    flex-wrap: wrap;
    margin-bottom: 0;
    padding: 0 5%;
  }
}

.l-header-access {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 240px;
  height: 50px;
  text-align: center;
  background: #c6b9ac;
  color: #fff;
  font-size: 1.7rem;
  font-family: "Noto Serif JP", serif;
  letter-spacing: .2em;
}

@media all and (max-width: 767px) {
  .l-header-access {
    height: 40px;
    font-size: 1.5rem;
    margin: 0 auto 10px auto;
  }
}

.l-header-access:before {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 8px 10px 0 0;
  border-color: #fff transparent transparent transparent;
}

/* --------------------------------------
   電話番号表示のカスタマイズ
---------------------------------------- */
.l-header-tel {
  margin: 0 30px 0 24px;
}

/* 文字に書き換えた場合のリンク装飾 */
.l-header-tel a {
  font-size: 3.2rem !important;       /* 最優先でサイズ指定 */
  font-weight: bold !important;       /* 太字 */
  color: #4A2400 !important;          /* 濃いブラウン */
  text-decoration: none !important;   /* 下線を消す */
  letter-spacing: 0.05em !important;  /* 文字間隔 */
  font-family: "Noto Serif JP", serif !important;
  display: inline-block;              /* サイズ変更を確実に適用させる */
}

@media all and (max-width: 767px) {
  .l-header-tel {
    width: 200px;
    margin: 0 auto 10px auto;
    text-align: center;    /* スマホ表示時に中央寄せ */
  }
  
  .l-header-tel a {
    font-size: 2.0rem;     /* スマホでの文字の大きさ */
  }
}

.l-header-time {
  font-size: 13px;
}

.l-header-time li:first-child {
  margin-bottom: 1px;
}

@media all and (max-width: 767px) {
  .l-header-time {
    width: 100%;
    text-align: center;
  }
}

@media all and (max-width: 767px) {
  .l-header-nav {
    order: 1;
    margin-bottom: 15px;
  }
}

.l-header-nav-btn {
  position: relative;
}

@media all and (max-width: 767px) {
  .l-header-nav-btn:before {
    content: "";
    position: absolute;
    right: 5%;
    top: 28px;
    display: block;
    width: 0;
    height: 0;
    margin: auto;
    border-style: solid;
    border-width: 5px 5px 0 5px;
    border-color: #adafb1 transparent transparent transparent;
  }
}

@media all and (max-width: 767px) {
  .l-header-nav-btn.-show:before {
    -webkit-transform: rotate(180deg);
            transform: rotate(180deg);
  }
}

.l-header-nav-ch {
  display: none;
  position: absolute;
  z-index: -1;
  left: -60px;
  top: 0;
  width: 180px;
  font-size: 1.4rem;
  padding-top: 50px;
}

@media all and (min-width: 768px) {
  .l-header-nav-ch {
    color: #fff;
  }
}

@media all and (max-width: 767px) {
  .l-header-nav-ch {
    position: static;
    left: 0;
    width: 100%;
    padding-top: 0;
  }
}

.l-header-nav-ch a {
  display: block;
  font-size: 1.2rem;
}
.l-header-nav-ch a:hover { opacity: .9; }
@media all and (min-width: 768px) {
  .l-header-nav-ch a {
    padding: 12px;
    background: #c6b9ac;
    border-top: solid 1px #fff;
  }
}

@media all and (max-width: 767px) {
  .l-header-nav-ch a {
    padding: 10px;
    border-bottom: solid 1px #c6b9ac;
  }
}

.l-header-nav__col {
  display: block;
  cursor: pointer;
}

@media all and (max-width: 767px) {
  .l-header-nav__col {
    padding: 10px;
    border-bottom: solid 1px #d5d6d7;
  }
}

.l-header-nav > ul {
  display: flex;
  justify-content: flex-end;
}

@media all and (max-width: 767px) {
  .l-header-nav > ul {
    display: block;
  }
}

.l-header-nav > ul > li {
  text-align: center;
  color: #4A2400;
}

@media all and (min-width: 768px) {
  .l-header-nav > ul > li:nth-child(1) {
    margin-right: 100px;
  }
  .l-header-nav > ul > li:nth-child(2) {
    margin-right: 100px;
  }
  .l-header-nav > ul > li:nth-child(3) {
    margin-right: 95px;
  }
  .l-header-nav > ul > li:nth-child(4) {
    margin-right: 84px;
  }
  .l-header-nav > ul > li:nth-child(5) {
    margin-right: 38px;
  }
}

@media all and (max-width: 767px) {
  .l-header-nav > ul > li a {
    display: block;
    padding: 10px;
    border-bottom: solid 1px #d5d6d7;
  }
  .l-header-nav > ul > li:first-child a {
    border-top: solid 1px #d5d6d7;
  }
}

.l-header-nav__jp, .l-header-nav__en {
  display: block;
  line-height: 1.4;
}

.l-header-nav__jp {
  font-size: 15px;
}

.l-header-nav__en {
  font-size: 14px;
  font-family: "EB Garamond", serif;
  color: #4A2400;
  font-style: italic;
  opacity: .7;
}

/*--------------------------------------
header btn
----------------------------------------*/
.l-nav-switch {
  position: absolute;
  right: 4%;
  top: 0;
  bottom: 0;
  width: 50px;
  height: 50px;
  margin: auto;
}

.l-nav-switch__line {
  position: absolute;
  left: 0;
  right: 0;
  width: 30px;
  height: 0;
  margin: 0 auto;
  border-top: solid 1px #656565;
  transition: all .4s;
}

.l-nav-switch__line:nth-child(1) {
  top: calc(50% - 8px);
}

.l-nav-switch__line:nth-child(2) {
  top: calc(50%);
}

.l-nav-switch__line:nth-child(3) {
  top: calc(50% + 8px);
}

.l-nav-switch.-show .l-nav-switch__line:nth-child(1) {
  top: 50%;
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
}

.l-nav-switch.-show .l-nav-switch__line:nth-child(2) {
  display: none;
}

.l-nav-switch.-show .l-nav-switch__line:nth-child(3) {
  top: 50%;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}

/*--------------------------------------
l-main
----------------------------------------*/
.l-main {
  display: block;
  line-height: 1.6;
  font-size: 1.6rem;
  color: #8d7c6c;
  letter-spacing: .05em;
}

@media all and (max-width: 767px) {
  .l-main {
    overflow: hidden;
    font-size: 1.4rem;
  }
}

/*--------------------------------------
l-footer
----------------------------------------*/
.l-footer {
  padding: 65px 0 55px 0;
  background: #c6b9ac;
  color: #fff;
}

@media all and (max-width: 767px) {
  .l-footer {
    padding: 35px 5% 30px 5%;
  }
}

.l-footer-row {
  display: flex;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto 100px auto;
}

@media all and (max-width: 767px) {
  .l-footer-row {
    flex-wrap: wrap;
    margin-bottom: 35px;
  }
}

.l-footer-nav {
  display: flex;
  width: 50%;
  font-size: 1.3rem;
}

@media all and (max-width: 767px) {
  .l-footer-nav {
    display: block;
    width: 100%;
    margin-bottom: 30px;
    font-size: 1.3rem;
  }
}

.l-footer-nav ul {
  padding-left: 90px;
}

@media all and (max-width: 767px) {
  .l-footer-nav ul {
    display: flex;
    flex-wrap: wrap;
    margin-bottom: 10px;
    padding-left: 0;
  }
}

.l-footer-nav ul li {
  margin-bottom: 20px;
}

@media all and (max-width: 767px) {
  .l-footer-nav ul li {
    margin: 0 10px 10px 0;
  }
}

.l-footer-nav ul li:last-child {
  margin-bottom: 0;
}

.l-footer-time {
  width: 50%;
  padding-right: 50px;
  font-size: 13px;
}

@media all and (max-width: 767px) {
  .l-footer-time {
    width: 100%;
    padding-right: 0;
  }
}

table.timetable {
  width: 100%;
  max-width: 460px;
  margin-bottom: 50px;
}
    main table.timetable { max-width: 100%; }
@media all and (max-width: 767px) {
  table.timetable {
    margin-bottom: 20px;
  }
}
table.timetable th, table.timetable td {
  text-align: center;
}

table.timetable th {
  padding: 10px 5px 20px 5px;
  border-bottom: solid 1px #e5e6e6;
}

table.timetable th:first-child {
  width: 130px;
  border-right: solid 1px #e5e6e6;
}
    main table.timetable th:first-child { width: 200px; }
@media all and (max-width: 767px) {
  table.timetable th:first-child { width: 110px; }
  main table.timetable th:first-child { width: 120px; }
}

table.timetable td {
  padding: 15px 10px;
}

@media all and (max-width: 767px) {
  table.timetable td {
    padding: 10px;
  }
}

table.timetable td:first-child {
  width: 130px;
  border-right: solid 1px #e5e6e6;
  text-align: center;
}
.l-footer-time__ico {
  display: block;
  width: 20px;
  height: 20px;
  border-radius: 20px;
  margin: 0 auto;
  background: #d5d6d7;
  text-align: center;
}

@media all and (max-width: 767px) {
  .l-footer-time__ico {
    width: 15px;
    height: 15px;
    border-radius: 15px;
  }
}

.l-footer-copy {
  text-align: center;
  opacity: .5;
  font-size: 1.2rem;
  letter-spacing: .2em;
}

/*==================================================
2.sp pc
==================================================*/
@media all and (min-width: 375px) {
  .ise-only {
    display: none !important;
  }
}

@media all and (min-width: 768px) {
  .sp-only {
    display: none !important;
  }
}

@media all and (max-width: 767px) {
  .pc-only {
    display: none !important;
  }
}

/*==================================================
3.module
==================================================*/
/*--------------------
space
--------------------*/
.m-block-space-s {
  margin-bottom: 30px;
}

.m-block-space-m {
  margin-bottom: 60px;
}

.m-block-space-l {
  margin-bottom: 90px;
}

/*--------------------
text
--------------------*/
.m-under {
  text-decoration: underline;
}

.m-tc {
  text-align: center;
}

.m-tr {
  text-align: right;
}

.m-bold {
  font-weight: bold;
}

/*--------------------
link
--------------------*/
/*--------------------
btn
--------------------*/
.m-btn {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 60px;
  border: solid 1px #b2b2b2;
  font-family: "Noto Serif JP", serif;
  letter-spacing: .075em;
}

@media all and (max-width: 767px) {
  .m-btn {
    width: 90%;
    height: 50px;
    margin: 0 auto;
  }
}

.m-btn:after {
  content: "";
  position: absolute;
  right: 12px;
  top: 0;
  bottom: 0;
  display: block;
  width: 23px;
  height: 8px;
  margin: auto;
  background: url(images/common/arrow.png) no-repeat center/cover;
}

.m-btn.-size-s {
  width: 370px;
}

@media all and (max-width: 767px) {
  .m-btn.-size-s {
    width: 90%;
  }
}

.m-btn.-center {
  margin: 0 auto;
}

.m-btn.-low {
  height: 50px;
}

.m-btn-02 {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 650px;
  max-width: 100%;
  font-size: 2rem;
  height: 60px;
  border: solid 1px #96989b;
  background: url(images/common/arrow.png) no-repeat 95% center;
  font-family: "Noto Serif JP", serif;
}

@media all and (max-width: 767px) {
  .m-btn-02 {
    width: 90%;
    height: 50px;
    margin: 0 auto;
    font-size: 1.6rem;
  }
}

.m-btn-02.-center {
  margin: 0 auto;
}

/*--------------------
ttl 
--------------------*/
.m-section-ttl {
  display: flex;
  justify-content: center;
  color: #8d7c6c;
}

@media all and (max-width: 767px) {
  .m-section-ttl {
    line-height: 1.4;
  }
}

.m-section-ttl.-space-ss {
  margin-bottom: 10px;
}

@media all and (max-width: 767px) {
  .m-section-ttl.-space-ss {
    margin-bottom: 10px;
  }
}

.m-section-ttl.-space-s {
  margin-bottom: 30px;
}

@media all and (max-width: 767px) {
  .m-section-ttl.-space-s {
    margin-bottom: 20px;
  }
}

.m-section-ttl.-space-m { margin-bottom: 44px; }
body.page .m-section-ttl.-space-m { margin-bottom: 0; }

@media all and (max-width: 767px) {
  .m-section-ttl.-space-m {
    margin-bottom: 25px;
  }
}

.m-section-ttl.-space-l {
  margin-bottom: 60px;
}

@media all and (max-width: 767px) {
  .m-section-ttl.-space-l {
    margin-bottom: 35px;
  }
}

.m-section-ttl__inner {
  padding-left: 65px;
  background: url(images/common/logo.png) no-repeat left center;
}

@media all and (max-width: 767px) {
  .m-section-ttl__inner {
    padding-left: 45px;
    background-size: 35px auto;
  }
}

.m-section-ttl__en {
  font-size: 1.2rem;
  letter-spacing: 3.6px;
}

@media all and (max-width: 767px) {
  .m-section-ttl__en {
    font-size: 1rem;
    letter-spacing: 2px;
  }
}

.m-section-ttl__jp {
  font-size: 2.7rem;
  letter-spacing: .2em;
}

@media all and (max-width: 767px) {
  .m-section-ttl__jp {
    font-size: 6vw;
  }
}

/*--------------------
list nav
--------------------*/
/*--------------------
table
--------------------*/
.m-table {
  width: 100%;
}

/*--------------------
row
--------------------*/
.m-row {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}

/*--------------------
inner
--------------------*/
.m-inner {
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 15px;
}

@media all and (max-width: 767px) {
  .m-inner {
    width: 100%;
    padding: 0 5%;
  }
}

.m-inner.-pos {
  position: relative;
}

.m-inner-l {
  width: 100%;
  max-width: 1600px;
  margin: 0 auto;
}
    body.page iframe, body.page .m-inner-l { margin-bottom: 80px; }
@media all and (max-width: 767px) {
  .m-inner-l { padding: 0 5%; }
  body.page .m-inner-l { margin-bottom: 20%; }
}

.m-inner-l.-pos {
  position: relative;
}

.m-inner-s {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
}

@media all and (max-width: 767px) {
  .m-inner-s {
    padding: 0 5%;
  }
}

.m-inner-s.-pos {
  position: relative;
}

.m-inner-s2 {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
}

@media all and (max-width: 767px) {
  .m-inner-s2 {
    padding: 0 5%;
  }
}

.m-inner-s2.-pos {
  position: relative;
}

@media all and (max-width: 767px) {
  .m-inner-l .m-inner-s,
  .m-inner .m-inner-s {
    padding: 0;
  }
}

/*--------------------
box unit
--------------------*/
/*==================================================
4.page
==================================================*/
/*--------------------------------------
booking-nav
----------------------------------------*/
.booking-nav {
  position: fixed;
  z-index: 1001;
  right: 0;
  top: 260px;
}

@media all and (max-width: 767px) {
  .booking-nav {
    top: auto;
    bottom: 30px;
  }
}

.booking-nav-link {
  display: block;
  /*
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    width: 150px;
    height: 150px;
    border-radius: 5px 0 0 5px;
    box-shadow: 0px 0px 8.28px 0.72px rgba(0, 0, 0, 0.26);
    color: #fff;
    @include sp($sph) {
      width: 70px;
      height: 70px;
    }
    &.-tel{
      margin-bottom: 20px;
      background: #5067b5 url(images/side-ico-01.png) no-repeat 7px 90px;
      font-size: 2.4rem;
      @include sp($sph) {
        margin-bottom: 5px;
        font-size: 1.4rem;
      }
    }
    &.-web{
      background: #de8975 url(images/side-ico-02.png) no-repeat 7px 85px;
      font-size: 3rem;
      @include sp($sph) {
        font-size: 1.4rem;
      }      
    }
    &__font-s{
      font-size: 2rem;
      @include sp($sph) {
        font-size: 1.2rem;
      }      
    }
  */
}

@media all and (max-width: 767px) {
  .booking-nav-link {
    width: 70px;
  }
}

@media screen and (min-width: 768px) {
  a.booking-nav-link[href*="tel:"] {
    display: none;
  }
}

/*--------------------------------------
main-img
----------------------------------------*/
.main-img {
  overflow: hidden;
  margin-bottom: 100px;
}

@media all and (max-width: 767px) {
  .main-img {
    margin-bottom: 30px;
  }
}

.main-img * {
  outline: none;
}

@media all and (max-width: 767px) {
  .main-img .m-inner-s.-pos {
    position: static;
  }
}

.main-img-bg {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  height: 540px;
  background: no-repeat center / cover;
}

@media all and (max-width: 767px) {
  .main-img-bg {
    height: 360px;
    background-position: 30% center;
  }
}

.main-img-bg.-bg-01 {
  background-image: url(images/main-img-01.jpg);
}

.main-img-bg.-bg-02 {
  background-image: url(images/main-img-02.jpg);
}

.main-img-bg.-bg-03 {
  background-image: url(images/main-img-03.jpg);
}

.main-img-unit {
  width: 555px;
  height: 525px;
  margin-top: 60px;
  margin-left: auto;
  padding: 75px 70px;
  background: url(images/main-img-bg.png) no-repeat center;
  text-align: center;
  font-family: "Noto Serif JP", serif;
}
.main-img-unit.bg_white { background: url(images/main-img-bg_white.png) no-repeat center; }
@media all and (max-width: 767px) {
  .main-img-unit {
    position: absolute;
    right: 15px;
    top: 30px;
    width: 70%;
    height: 320px;
    margin-top: 0;
    padding: 45px 5px 0 5px;
    background: url(images/main-img-bg_white.png) no-repeat center;
    background-size: cover;
    background-position: center top;
  }
  .main-img-unit.bg_white { background-size: cover; background-position: center top; }
}

.main-img-txt-01 {
  position: relative;
  margin-bottom: 30px;
  padding: 0 10px 22px 10px;
  background: url(images/main-img-ttl.png) no-repeat center bottom;
  letter-spacing: .3em;
  font-size: 1.5rem;
	color: #000000;
}

@media all and (max-width: 767px) {
  .main-img-txt-01 {
    margin-bottom: 5px;
    font-size: 1.3rem;
  }
}

.main-img-txt-02 {
  margin-bottom: 30px;
  font-size: 4.7rem;
  line-height: 1.4;
  letter-spacing: .07em;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
	color: #222222;
}
.main-img-txt-02.l-height-mini { line-height: .8; }
@media all and (max-width: 767px) {
  .main-img-txt-02 {
    margin-bottom: 15px;
    font-size: 6.5vw;
  }
}

.main-img-txt-02__s {
  display: block;
  margin-bottom: 10px;
  font-size: 2.3rem;
color: #222222;	
}
.main-img-txt-02.l-height-mini .main-img-txt-02__s { line-height: 1.4; }

@media all and (max-width: 767px) {
  .main-img-txt-02__s {
    font-size: 3.5vw;
  }
}

.main-img-btn {
  position: relative;
  display: flex;
  align-items: center;
  max-width: 368px;
  margin: 0 auto;
  height: 60px;
  padding-left: 25px;
  border: solid 1px #b2b2b2;
  font-family: "Noto Serif JP", serif;
  letter-spacing: .075em;
  color: #656565;
  font-size: 1.9rem;
}
.main-img-btn.doctor-btn { padding-left: 120px; }

@media all and (max-width: 767px) {
  .main-img-btn {
    width: 210px;
    height: 50px;
    margin: 0 auto;
    padding-left: 10px;
    font-size: 1.1rem;
  }
  .main-img-btn.doctor-btn { padding-left: 65px; }
}

.main-img-btn:after {
  content: "";
  position: absolute;
  right: 12px;
  top: 0;
  bottom: 0;
  display: block;
  width: 23px;
  height: 8px;
  margin: auto;
  background: url(images/common/arrow.png) no-repeat center/cover;
}

@media all and (max-width: 767px) {
  .main-img-btn:after {
    right: 6px;
    width: 16px;
    background-size: contain;
    background-position: right center;
  }
}

/*--------------------------------------
topics 
----------------------------------------*/
.topics {
  max-width: 1380px;
  margin: 0 auto 120px auto;
  padding: 36px 0;
  border: solid 1px #d5d6d7;
  background: #fff;
}

@media all and (max-width: 767px) {
  .topics {
    display: block;
    margin: 0 5% 25px 5%;
    padding: 15px 20px;
  }
}

.topics-row {
  display: flex;
  align-items: center;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
}

@media all and (max-width: 767px) {
  .topics-row {
    display: block;
  }
}

.topics-head {
  width: 130px;
}

@media all and (max-width: 767px) {
  .topics-head {
    width: 100%;
  }
}

.topics-body {
  margin-left: 150px;
}

@media all and (max-width: 767px) {
  .topics-body {
    margin-left: 0;
  }
}

.topics-body dl {
  display: flex;
  margin-bottom: 18px;
  font-size: 1.4rem;
}

@media all and (max-width: 767px) {
  .topics-body dl {
    display: block;
    margin-bottom: 10px;
  }
}

.topics-body dl:last-child {
  margin-bottom: 0;
}

.topics-body dl dt {
  margin-right: 90px;
}

@media all and (max-width: 767px) {
  .topics-body dl dt {
    margin-right: 15px;
  }
}
.topics-body dl span {
  display: inline-block;
  margin-bottom: 15px;
  padding: 3px 12px;
  background: #ffaf36;
  color: #fff;
  font-size: 1.1rem;
}
.topics-ttl {
  margin-bottom: 18px;
  padding-left: 4px;
  font-size: 2.4rem;
  letter-spacing: .25em;
  text-align: center;
  color: #7d7d7d;
}

@media all and (max-width: 767px) {
  .topics-ttl {
    margin-bottom: 15px;
    font-size: 2rem;
  }
}

.topics-btn {
  display: flex;
  align-items: center;
  width: 130px;
  height: 40px;
  padding-left: 32px;
  border: solid 1px #b2b2b2;
  background: url(images/common/arrow.png) no-repeat 90px center;
  color: #656565;
  font-size: 1.4rem;
}

@media all and (max-width: 767px) {
  .topics-btn {
    margin: 25px auto 0 auto;
  }
}

/*--------------------------------------
greeting
----------------------------------------*/
.greeting-main { height: 540px; background: url(images/greeting-main.jpg) no-repeat center top/cover; }
@media all and (max-width: 767px) {
    .greeting-main { height: 260px; background-image: url(images/greeting-main.jpg); background-position: 100px topx; }
}

/* TOP マイクロスコープ */
.greeting-cnt {
  background: url(images/greeting-img-01.jpg) no-repeat right top;
}

@media all and (max-width: 767px) {
  .greeting-cnt {
    background-position: right 5px;
    background-size: 45vw auto;
  }
}

.greeting-block {
  font-size: 1.7rem;
}

@media all and (max-width: 767px) {
  .greeting-block {
    font-size: 1.4rem;
  }
}

.greeting-block.-bg-01 {
  min-height: 600px;
  padding-top: 100px;
}

@media all and (max-width: 767px) {
  .greeting-block.-bg-01 {
    min-height: 1px;
    padding-top: 40px;
  }
}

.greeting-block.-bg-02 {
  background: url(images/greeting-img-02.jpg) no-repeat left top;
}

@media all and (max-width: 767px) {
  .greeting-block.-bg-02 {
    background: none;
  }
}

.greeting-txt-01 {
  width: 100%;
  max-width: 770px;
}
.page-txt-01 {
  margin: 0 auto;
  width: 85%;
}
.greeting-txt-01 p, .page-txt-01 p {
  margin-bottom: 35px;
  line-height: 2;
}
@media all and (max-width: 767px) {
  .greeting-txt-01 p, .page-txt-01 p { margin-bottom: 20px; }
  body.page .page-txt-01, body.single .page-txt-01 { width: 100%; }
}

.greeting-txt-02 {
  width: 100%;
  max-width: 650px;
  min-height: 510px;
  margin-left: auto;
  padding-top: 15px;
}

@media all and (max-width: 1599px) {
  .greeting-txt-02 {
    max-width: 600px;
  }
}

@media all and (max-width: 767px) {
  .greeting-txt-02 {
    padding-top: 0;
  }
}

.greeting-txt-02 p {
  margin-bottom: 35px;
  line-height: 2;
}

@media all and (max-width: 767px) {
  .greeting-txt-02 p {
    margin-bottom: 20px;
  }
}

.greeting-btn-area {
  margin-top: 60px;
}

@media all and (max-width: 767px) {
  .greeting-btn-area {
    margin-top: 30px;
  }
}

.greeting_line {
  text-decoration: underline;
}

/*--------------------------------------
feature
----------------------------------------*/
.feature {
  overflow: hidden;
  position: relative;
  padding: 130px 0 85px 0;
}

@media all and (max-width: 767px) {
  .feature {
    padding: 50px 0 45px 0;
  }
}

.feature:after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -60px;
  display: block;
  width: 100%;
  height: 600px;
  background-image: linear-gradient(135deg, #4A2400  0%, white 100%);
  opacity: .5;
}

.feature-row {
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: space-between;
  margin-bottom: 30px;
  padding: 0 40px;
}

@media all and (max-width: 767px) {
  .feature-row {
    flex-wrap: wrap;
    padding: 0;
    margin-bottom: 0px;
  }
}

.feature-unit {
  position: relative;
  width: 350px;
  padding: 50px 27px 40px 27px;
}

@media all and (max-width: 767px) {
  .feature-unit {
    width: 100%;
    max-width: 340px;
    margin: 0 auto 30px auto;
  }
}

@media all and (max-width: 374px) {
  .feature-unit {
    max-width: 280px;
  }
}

.feature-unit:before {
  content: "";
  position: absolute;
  top: -35px;
  left: -58px;
  z-index: -1;
  display: block;
  width: 466px;
  height: 562px;
  background: url(images/feature-unit-bg.png) no-repeat center;
}

@media all and (max-width: 767px) {
  .feature-unit:before {
    top: -12vw;
    left: -14vw;
    width: 130%;
    background-size: contain;
  }
}

@media all and (max-width: 374px) {
  .feature-unit:before {
    top: -25vw;
    left: -38px;
  }
}

.feature-unit__num {
  position: absolute;
  top: -30px;
  left: 0;
  width: 100%;
  margin-bottom: 10px;
  text-align: center;
  font-family: "EB Garamond", serif;
  font-size: 6.6rem;
  color: #8d7c6c;
  line-height: 1;
  font-style: italic;
  text-align: center;
}

.feature-unit__ttl {
  padding-bottom: 25px;
  background: url(images/feature-ttl.png) no-repeat center bottom;
  font-family: "Noto Serif JP", serif;
  font-size: 1.9rem;
  text-align: center;
}

@media all and (max-width: 374px) {
  .feature-unit__ttl {
    font-size: 1.4rem;
  }
}

.feature-unit__img {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 230px;
  text-align: center;
}

@media all and (max-width: 767px) {
  .feature-unit__img {
    width: 260px;
    height: 200px;
    margin: 0 auto 10px auto;
  }
}

@media all and (max-width: 374px) {
  .feature-unit__img {
    width: 170px;
    height: 160px;
    margin-bottom: 5px;
  }
}

.feature-txt {
  line-height: 2;
  text-align: center;
}

@media all and (max-width: 767px) {
  .feature-txt {
    text-align: left;
  }
}

.feature-txt p {
  margin-bottom: 30px;
}

@media all and (max-width: 767px) {
  .feature-txt p {
    margin-bottom: 20px;
  }
}

.feature-txt p:last-child {
  margin-bottom: 0;
}

/*--------------------------------------
menu
----------------------------------------*/
.menu {
  padding: 85px 0 0 0;
  background: url(images/menu-bg.png) no-repeat left 120px;
}

@media all and (max-width: 767px) {
  .menu {
    padding-top: 50px;
    background-position: left 160px;
    background-size: 80vw auto;
  }
}

.menu-row {
  display: flex;
  flex-wrap: wrap;
}

@media all and (max-width: 767px) {
  .menu-row {
    justify-content: center;
    max-width: 340px;
    margin: 0 auto;
  }
}

@media all and (max-width: 374px) {
  .menu-row {
    max-width: 280px;
  }
}

.menu-unit {
  position: relative;
  display: block;
  width: 255px;
  height: 308px;
  margin: 0 60px 50px 0;
  padding: 70px 15px 0px 15px;
}

@media all and (max-width: 767px) {
  .menu-unit {
    width: 160px;
    height: 220px;
    margin: 0 0 25px 0;
    padding: 40px 0 0 0;
  }
}

@media all and (max-width: 374px) {
  .menu-unit {
    width: 130px;
    height: 190px;
    padding-top: 30px;
  }
}

@media all and (max-width: 767px) {
  .menu-unit:nth-child(odd) {
    margin-right: 8px;
  }
}

@media all and (max-width: 767px) {
  .menu-unit:nth-child(even) {
    margin-left: 8px;
  }
}

@media all and (min-width: 768px) {
  .menu-unit:nth-child(4n) {
    margin-right: 0;
  }
}

.menu-unit:before {
  content: "";
  position: absolute;
  left: -60px;
  top: 0;
  width: 375px;
  height: 428px;
  margin: auto;
  background: url(images/menu-unit-bg.png) no-repeat center top;
}

@media all and (max-width: 767px) {
  .menu-unit:before {
    left: -30px;
    width: 220px;
    height: 280px;
    background-size: contain;
    background-image: url(images/sp-menu-unit-bg.png);
  }
}

@media all and (max-width: 374px) {
  .menu-unit:before {
    left: -26px;
    width: 180px;
    background-size: 180px auto;
  }
}

.menu-unit:after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -15px;
  display: block;
  width: 28px;
  height: 8px;
  margin: auto;
  background: url(images/common/arrow.png) no-repeat center bottom;
}

@media all and (max-width: 767px) {
  .menu-unit:after {
    bottom: -5px;
    width: 20px;
    background-size: contain;
  }
}

@media all and (max-width: 374px) {
  .menu-unit:after {
    bottom: 5px;
  }
}

.menu-unit:hover {
  opacity: 1;
}

.menu-unit__inner {
  position: relative;
  z-index: 1;
}

.menu-unit__ttl {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 15px;
  height: 2.6em;
  text-align: center;
  font-size: 2.1rem;
  line-height: 1.5;
}

@media all and (max-width: 767px) {
  .menu-unit__ttl {
    font-size: 1.4rem;
  }
}

@media all and (max-width: 374px) {
  .menu-unit__ttl {
    font-size: 1.2rem;
  }
}

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

@media all and (max-width: 767px) {
  .menu-unit__img {
    width: 40%;
    margin: 0 auto 10px auto;
  }
}

@media all and (max-width: 374px) {
  .menu-unit__img {
    width: 35%;
    margin-bottom: 5px;
  }
}

.menu-unit__txt {
  padding: 0 20px;
  line-height: 1.8;
  font-size: 1.3rem;
}

@media all and (max-width: 767px) {
  .menu-unit__txt {
    padding: 0 10px;
    font-size: 1.2rem;
  }
}

@media all and (max-width: 374px) {
  .menu-unit__txt {
    font-size: 1.1rem;
    line-height: 1.6;
  }
}

/*--------------------------------------
microscope
----------------------------------------*/
.microscope {
  position: relative;
  padding: 140px 0 0 0;
  background: url(images/microscope-bg.jpg) no-repeat left 200px;
}

@media all and (max-width: 767px) {
  .microscope {
    padding: 70px 0 0 0;
    background-position: center 85px;
    background-size: contain;
  }
}

.microscope-en {
  font-size: 6.6rem;
  text-align: right;
  color: #c6b9ac;
  font-weight: 200;
}

@media all and (max-width: 767px) {
  .microscope-en {
    font-size: 8vw;
    line-height: 1.1;
  }
}

.microscope-unit {
  width: 100%;
  max-width: 980px;
  height: 952px;
  margin: 0 0 0 auto;
  padding: 80px 160px 65px 160px;
  background: url(images/micro-unit-bg.png) no-repeat center;
  color: #fff;
}

@media all and (max-width: 767px) {
  .microscope-unit {
    height: auto;
    padding: 60px 20px 30px 20px;
    background-position: 10% top;
  }
}

.microscope-ttl {
  margin-bottom: 25px;
  padding: 60px 0 40px 0;
  background: url(images/microscope-logo.png), url(images/micro_line.png);
  background-repeat: no-repeat;
  background-position: center top,center bottom;
  text-align: center;
  font-family: "Noto Serif JP", serif;
  line-height: 1.5;
  font-size: 4.2rem;
}

@media all and (max-width: 767px) {
  .microscope-ttl {
    margin-bottom: 15px;
    padding: 40px 0 30px 0;
    background-size: 30px auto ,auto;
    font-size: 5vw;
  }
}

.microscope-img-list {
  display: flex;
  justify-content: space-between;
  margin-bottom: 40px;
}

@media all and (max-width: 767px) {
  .microscope-img-list {
    margin-bottom: 20px;
  }
}

@media all and (max-width: 767px) {
  .microscope-img-list li {
    width: calc(50% - 5px);
  }
}

.microscope-txt {
  margin-bottom: 30px;
  line-height: 2.2;
  font-size: 1.6rem;
  letter-spacing: .11em;
}

@media all and (max-width: 767px) {
  .microscope-txt {
    margin-bottom: 20px;
    font-size: 1.4rem;
  }
}

.microscope-btn {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 76px;
  border: solid 1px #cbcbcb;
  background: url(images/common/arrow-wh.png) no-repeat 570px center/30px auto;
  font-size: 2.3rem;
  font-family: "Noto Serif JP", serif;
}

@media all and (max-width: 767px) {
  .microscope-btn {
    height: 50px;
    font-size: 1.6rem;
    background-position: 95% center;
  }
}

/*--------------------------------------
blog
----------------------------------------*/
section.blog {
  padding: 150px 0 75px 0;
}

@media all and (max-width: 767px) {
  section.blog {
    padding: 60px 0 30px 0;
  }
}

.blog-inner {
  max-width: 1340px;
  margin: 0 auto;
}

.blog-row {
  display: flex;
  justify-content: space-between;
  margin-bottom: 70px;
}

@media all and (max-width: 767px) {
  .blog-row {
    flex-wrap: wrap;
    margin-bottom: 0px;
  }
}

.blog-unit {
  position: relative;
  width: 393px;
}

@media all and (max-width: 767px) {
  .blog-unit {
    width: 100%;
    max-width: 340px;
    height: 425px;
    margin: 0 auto;
  }
}

@media all and (max-width: 374px) {
  .blog-unit {
    max-width: 280px;
  }
}

.blog-unit:before {
  content: "";
  pointer-events: none;
  position: absolute;
  left: -60px;
  top: -43px;
  z-index: -1;
  display: block;
  width: 513px;
  height: 584px;
  background: url(images/blog-unit.png) no-repeat center;
}

@media all and (max-width: 767px) {
  .blog-unit:before {
    top: -8vw;
    left: -13.5vw;
    width: 130%;
    height: 495px;
    background-size: contain;
  }
}

@media all and (max-width: 374px) {
  .blog-unit:before {
    left: -38px;
    width: 127.5%;
  }
}

.blog-unit:hover {
  opacity: 1;
}

.blog-unit__body {
  height: 210px;
  padding: 20px 30px;
}

@media all and (max-width: 767px) {
  .blog-unit__body {
    height: 150px;
    padding: 15px 20px;
  }
}

.blog-unit__time {
  margin-bottom: 8px;
}

.blog-unit__tag {
  display: inline-block;
  margin-bottom: 15px;
  padding: 3px 12px;
  background: #c6b9ac;
  color: #fff;
  font-size: 1.1rem;
}

.blog-unit__txt {
  font-size: 1.7rem;
}

@media all and (max-width: 767px) {
  .blog-unit__txt {
    font-size: 1.4rem;
  }
}

.blog-btn {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 650px;
  height: 60px;
  margin: 0 auto;
  font-size: 1.9rem;
}

@media all and (max-width: 767px) {
  .blog-btn {
    width: 100%;
  }
}

/*--------------------------------------
access
----------------------------------------*/
.access {
  padding: 75px 0 220px 0;
}

@media all and (max-width: 767px) {
  .access {
    padding: 30px 0 60px 0;
  }
}

@media all and (min-width: 768px) {
  .access-map iframe {
    width: 100%;
    height: 470px;
  }
}

@media all and (max-width: 767px) {
  .access-map {
    margin-bottom: 20px;
    position: relative;
    padding-bottom: 70%;
    height: 0;
    overflow: hidden;
  }
  .access-map iframe, .access-map object, .access-map embed {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }
}

.access-txt {
  margin-bottom: 25px;
  text-align: center;
  font-size: 1.7rem;
}

@media all and (max-width: 767px) {
  .access-txt {
    font-size: 1.4rem;
    text-align: left;
  }
}

.access-unit {
  position: absolute;
  z-index: 10;
  right: -60px;
  top: -350px;
  width: 480px;
  height: 380px　!important;
  padding: 40px 60px 30px 60px !important;
}

@media all and (max-width: 767px) {
  .access-unit {
    position: relative;
    right: 0;
    top: 0;
    width: 100%;
    height: auto;
    margin: auto;
    padding: 0;
  }
}

.access-unit__inner {
  position: relative;
  z-index: 2;
}

.access-unit:before {
  content: "";
  position: absolute;
  left: -60px;
  top: -40px;
  display: block;
  width: 594px;
  height: 430px !important;
  background: url(images/access-bg.png) no-repeat center top / 100% 100% !important;
}

@media all and (max-width: 767px) {
  .access-unit:before {
    content: none;
  }
}

.access-sub {
  margin-bottom: 25px;
  font-size: 1.4rem;
}

@media all and (max-width: 767px) {
  .access-sub {
    margin-bottom: 20px;
  }
}

.access-data {
  margin-bottom: 20px;
}

.access-data dl {
  margin-bottom: 25px;
  line-height: 2.2;
  font-size: 1.4rem;
}

@media all and (max-width: 767px) {
  .access-data dl {
    margin-bottom: 20px;
  }
}

.access-data dl:last-child {
  margin-bottom: 0;
}

/*--------------------------------------
gallery
----------------------------------------*/
.gallery {
  overflow: hidden;
  padding-bottom: 150px;
}

@media all and (max-width: 767px) {
  .gallery {
    padding-bottom: 70px;
    text-align: center;
  }
  .gallery img {
    width: 100%;
  }
}

.gallery li {
  padding: 0 12px;
}

@media all and (max-width: 767px) {
  .gallery li {
    padding: 0;
  }
}

.gallery * {
  outline: none;
}

/*==================================================
5.js ie
==================================================*/
.-js-tab-btn {
  cursor: pointer;
}


/*　下層
---------------------------------------------------------------------------*/
body.page .main_visual, body.single .main_visual, body.error404 .main_visual, body.archive .main_visual {
	margin: 0 auto 60px;
	padding: 240px 0 0 0;
	height: 500px;
}
    body.page-id-625 .main_visual { background: url(images/page_doctor1.jpg) bottom center no-repeat; background-size: cover; opacity: 0.7;  } /* 院長紹介 */
    body.page-id-1498 .main_visual { background: url(images/page_treatment.jpg) bottom center no-repeat; background-size: cover; opacity: 0.7;  } /* 当院の特徴 */
    body.page-id-621 .main_visual { background: url(images/page_outside.jpg) bottom center no-repeat; background-size: cover; opacity: 0.7;  } /* アクセス/診療時間 */
    body.page-id-619 .main_visual { background: url(images/page_doctor1.jpg) bottom center no-repeat; background-size: cover; opacity: 0.7;  } /* 一般歯科 */
    body.page-id-1253 .main_visual { background: url(images/page_doctor3.jpg) bottom center no-repeat; background-size: cover; opacity: 0.7;  } /* 小児歯科*/
    body.page-id-615 .main_visual { background: url(images/page_waitingroom.jpg) bottom center no-repeat; background-size: cover; opacity: 0.7;  } /* 定期健診・クリーニング */
    body.page-id-1518 .main_visual { background: url(images/page_item.jpg) bottom center no-repeat; background-size: cover; opacity: 0.7;  } /* 審美歯科 */
    body.page-id-613 .main_visual { background: url(images/page_staff1.jpg) bottom center no-repeat; background-size: cover; opacity: 0.7;  } /* インプラント */
    body.page-id-1530 .main_visual { background: url(images/page_wall.jpg) bottom center no-repeat; background-size: cover; opacity: 0.7;  } /* 訪問歯科*/
    body.page-id-1535 .main_visual { background: url(images/page_staff2.jpg) bottom center no-repeat; background-size: cover; opacity: 0.7;  } /* ホワイトニング */
    body.page-id-1512 .main_visual { background: url(images/page_staff1.jpg) bottom center no-repeat; background-size: cover; opacity: 0.7;  } /* 矯正 */
    body.page-id-632 .main_visual { background: url(images/page_doctor1.jpg) bottom center no-repeat; background-size: cover; opacity: 0.7;  } /* ブログ一覧 */
    body.page-id-603 .main_visual, body.single .main_visual, body.archive .main_visual, body.page-id-318 .main_visual, body.error404 .main_visual { background: url(images/page_recep.jpg) bottom center no-repeat; background-size: cover; opacity: 0.7;  } /* ニュース一覧、404 */
    body.page-id-492 .main_visual, body.page-id-486 .main_visual, body.page-id-484 .main_visual, body.page-id-1482 .main_visual, body.page-id-1599 .main_visual { background: url(images/page_flower.jpg) bottom center no-repeat; background-size: cover; opacity: 0.7;  } /* Web予約 */
    .photo01 { margin-bottom: 80px; height: 540px; background: url(images/page_doctor1.jpg) no-repeat center top/cover; }
    .photo02 { margin-bottom: 50px; height: 540px; background: url(images/page_doctor2.jpg) no-repeat center top/cover; }
    .photo03 { margin-bottom: 80px; height: 540px; background: url(images/page_doctor3.jpg) no-repeat center top/cover; }
    .photo04 { margin-bottom: 80px; height: 540px; background: url(images/page_doctor4.jpg) no-repeat center top/cover; }
    .photo05 { margin-bottom: 80px; height: 540px; background: url(images/page_doctor5.jpg) no-repeat center top/cover; }
    .photo06 { margin-bottom: 80px; height: 540px; background: url(images/page_doctor6.jpg) no-repeat center top/cover; }
    .photo07 { margin-bottom: 80px; height: 540px; background: url(images/page_item.jpg) no-repeat center top/cover; } 
    .photo08 { margin-bottom: 80px; height: 540px; background: url(images/page_kidsroom1.jpg) no-repeat center top/cover; }
    .photo09 { margin-bottom: 80px; height: 540px; background: url(images/page_kidsroom2.jpg) no-repeat center top/cover; }
    .photo10 { margin-bottom: 80px; height: 540px; background: url(images/page_other1.jpg) no-repeat center top/cover; }
    .photo11 { margin-bottom: 80px; height: 540px; background: url(images/page_other2.jpg) no-repeat center top/cover; }
    .photo12 { margin-bottom: 80px; height: 540px; background: url(images/page_outside.jpg) no-repeat center top/cover; }
    .photo13 { margin-bottom: 80px; height: 540px; background: url(images/page_outside2.jpg) no-repeat center top/cover; }
    .photo14 { margin-bottom: 80px; height: 540px; background: url(images/page_outside3.jpg) no-repeat center top/cover; }
    .photo15 { margin-bottom: 80px; height: 540px; background: url(images/page_staff1.jpg) no-repeat center top/cover; }
    .photo16 { margin-bottom: 80px; height: 540px; background: url(images/page_staff2.jpg) no-repeat center top/cover; }
    .photo17 { margin-bottom: 80px; height: 540px; background: url(images/page_staff3.jpg) no-repeat center top/cover; }
    .photo18 { margin-bottom: 80px; height: 540px; background: url(images/page_staff4.jpg) no-repeat center top/cover; }
    .photo19 { margin-bottom: 80px; height: 540px; background: url(images/page_treatment.jpg) no-repeat center top/cover; }
    .photo20 { margin-bottom: 80px; height: 540px; background: url(images/page_treatment2.jpg) no-repeat center top/cover; }
    .photo21 { margin-bottom: 80px; height: 540px; background: url(images/page_treatment3.jpg) no-repeat center top/cover; }
    .photo22 { margin-bottom: 80px; height: 540px; background: url(images/page_waitingroom.jpg) no-repeat center top/cover; }
    .photo23 { margin-bottom: 80px; height: 540px; background: url(images/page_wall.jpg) no-repeat center top/cover; }

body.page .main_visual h1, body.single .main_visual h1, body.error404 .main_visual h1, body.archive .main_visual h1 {
	margin-bottom: 30px;
	padding: 0;
	font-size: 30px;
	color: #3f2e24 !important; /* 濃いブラウン */
	letter-spacing: 4px;
	text-shadow: 0 2px 5px #555;
	text-align: center;
	z-index: 2;
}
body.page h3, body.single h3 {
	margin: 20px 0;
	font-size: 20px;
}
body.page h4, body.single h4 {
    margin: 30px 0 30px;
    padding-bottom: 15px;
    border-width: 0 0 1px;
    border-image: linear-gradient( 90deg, hsla(0, 0%, 100%, 0), hsla(210, 0%, 60%, 0.5) 50%, hsla(0, 0%, 100%, 0) 100%) 0 0 100%;
    border-style: solid; 
    font-size: 20px;
    line-height: 1.6;
    text-align: center;
}
body.single .page-txt-01 img { display: block; margin: 0 auto 20px; }
body.page .l-main-row p, body.single .l-main-row p {
    margin-bottom: 20px;
	font-size: 16px;
	line-height: 1.8em;
}
body.page .l-main-row__cnt p.waku {
	position:relative;
	border-radius: 10px;
}
body.page .l-main-row__cnt p.waku:before {
		content: '';
		display: block;
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 99.7%;
		box-shadow: inset 0 0 0px 15px rgba(255,255,255,0.2); 
		z-index: 99;
}
body.page .l-main-row__cnt p.waku img { border-radius: 10px; }
ul.list_half {
	margin: 40px auto 0;
	width: 100%;
	text-align: center;
}
	ul.list_half li {
		display: inline-block;
		margin: 0 2% 30px 0;
		width: 48%;
		text-align: center;
	}
	ul.list_half li:nth-child(2n) { margin-right: 0; }

ul.list_four {
	margin: 40px auto;
	width: 100%;
	text-align: center;
}
	ul.list_four li {
		display: inline-block;
		margin: 0 1% 30px 0;
		width: 23%;
		text-align: center;
	}
	ul.list_four li:nth-child(4n) { margin-right: 0; }

ol.number_list {
	margin: 2% auto 10%;
	padding: 4% 3% 4% 7%;
	width: 90%;
	border-radius: 20px;
	border: 1px solid #ddd;
	border-bottom: 1px solid #aaa;
}
	ol.number_list li {
		display: inline-block;
		list-style-type: none;
		counter-increment: number;
		margin-bottom: 2%;
		font-size: 18px;
		line-height: 1.8;
	}
	ol.number_list li:before {
		content: counter(number) ".";
		margin-left: -22px;
		margin-right: 5px;
		font-size: 20px;
		color: #4baa16;
	}
.pre_next{margin:20px 0 60px;text-align:center;}
.pre_next li{display:inline-block; vertical-align: top;}
.pre_next p {text-align:left;}
.pre_next p img {margin-right: 20px;}
.pre_next a{font-size:16px;text-decoration:underline;line-height:1.4em;}
.pre_next01, .pre_next03 { width: 40%; }
.pre_next01 { text-align: left;}
.pre_next03 { text-align: right; }
.pre_next02 { width: 19%; }

blockquote {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 10px auto 20px;
  padding: 40px 30px 20px;
  width: 70%;
  text-align: center;
  background: #adafb1;
  color: #fff;
  font-size: 1.7rem;
}
blockquote:before {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 8px 10px 0 0;
  border-color: #fff transparent transparent transparent;
}

.txt_right { margin: 20px 0 10px; text-align: right; }
#btn {
	display: block;
	margin: 0 auto 40px;
	padding: 25px 0;
	width: 60%;
	border-radius: 5px;
	background: #ed6887;
	background: -moz-linear-gradient(left,  #f28394 0%, #ed6887 100%);
	background: -webkit-linear-gradient(left,  #f28394 0%,#ed6887 100%);
	background: linear-gradient(to right,  #f28394 0%,#ed6887 100%);
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f28394', endColorstr='#ed6887',GradientType=1 );
	font-size: 24px;
	color: #fff;
	text-align: center;
	letter-spacing: 1px;
}

.page-block.-bg-01 {
  padding: 50px 0 30px;
}
ul.sitemap li { margin-bottom: 15px; list-style-type: disc }
ul.points {
	position: relative;
	margin: 10px auto 20px;
	padding: 50px 50px 40px 200px;
    width: 90%;
    border-radius: 5px;
    background: #fff;
    box-shadow:0px 3px 30px 10px #c4c4c4;
}
ul.points:before{
  content: "POINT";
  position: absolute;
  display: block;
  top: 40px;
  left: 40px;
  padding: 35px 10px;
  width: 100px;
  height: 100px;
  border: 1px solid #dfdfdf;
  font-size: 18px;
  color: #96989b;
  letter-spacing: 2px;
  font-weight: bold;
  text-align: center;
}
ul.points li {
	margin-bottom: 20px;
	font-size: 16px;
	text-align: left;
	line-height: 1.8;
	list-style-type: decimal-leading-zero
}


body.page table.normal_table {
	margin: 20px 0;
	width: 100%;
	border: 1px solid #b8b8b8;
}
    body.page table.normal_table table { border: 1px solid #e6e6e6; }
body.page table.normal_table th {
	padding: 30px;
	width: 250px;
	border-right: 1px solid #b8b8b8;
	text-align: right;
}
    body.page table.normal_table table th { width: 25%; border-right: 1px solid #e6e6e6; }
body.page table.normal_table th, body.page table.normal_table td {
	padding: 30px;
	border-bottom: 1px solid #b8b8b8;
	font-size: 16px;
}
    body.page table.normal_table table th, body.page table.normal_table table td { padding: 10px; border-bottom: 1px solid #e6e6e6; }
body.page table.normal_table .m-btn { width: 350px; }

ol.breadcrumbs {
	margin: 0 auto 40px;
	width: 75%;
}
ol.breadcrumbs li {
	display: inline;
	padding: 5px 5px 5px 0;
	font-size: 14px;
	line-height: 1.4em;
}
ol.breadcrumbs li a {
	padding:5px 15px 5px 0;
	height:100%;
	background-image: url(images/common/topicpath.png);
	background-position: center right;
	background-repeat: no-repeat;
	text-decoration: none;
	font-size: 14px;
	line-height: 1.4em;
}

@media all and (max-width: 767px) {
    body.page .main_visual, body.single .main_visual, body.error404 .main_visual, body.archive .main_visual {
	margin: 0 auto 10%;
	padding: 20% 0;
	height: auto;
	background-size: 200%;
	text-align: center;
    }
    body.page .main_visual_inner, body.single .main_visual_inner, body.error404 .main_visual_inner, body.archive .main_visual_inner { width: 100%; }
    body.page .main_visual h1, body.single .main_visual h1, body.error404 .main_visua h1, body.archive .main_visua h1 {
    	padding: 0 5%;
	    font-size: 24px;
    }
	body.page main p {
		margin: 0 auto 5%;
		width: 95%;
	}
		body.page main p img {
			border-radius: 5px;
		}
	body.page h3, body.single h3 { margin: 0 auto 5%; width: 95%; min-width: 200px; font-size: 20px; text-align: left; }
	body.page h4, body.single h4 { font-size: 18px; }
  body.page-id-619 .main_visual { background: url(images/page_doctor1.jpg) center top no-repeat; background-size: cover; opacity: 0.7;  } /* 一般歯科 */
  body.page-id-615 .main_visual { background: url(images/page_doctor2.jpg) center top no-repeat; background-size: cover; opacity: 0.7;  } /* 定期健診・クリーニング */
  /* body.page-id-617 .main_visual { background: url(images/page_micro1.jpg) left center no-repeat; background-size: cover; opacity: 0.7;  } */ /* 超精密マイクロスコープ治療 */
  body.page-id-613 .main_visual { background: url(images/page_staff1.jpg) bottom left no-repeat; background-size: cover; opacity: 0.7;  } /* 歯周病治療 */
  body.page-id-609 .main_visual { background: url(images/page_staff2.jpg) 75% center no-repeat; background-size: cover; opacity: 0.7;  } /* インプラント治療 */
  body.page-id-607 .main_visual { background: url(images/page_doctor5.jpg) left bottom no-repeat; background-size: 200%; opacity: 0.7;  } /* 親知らずの抜歯 */
  body.page-id-605 .main_visual { background: url(images/page_item.jpg) bottom left no-repeat; background-size: cover; opacity: 0.7;  } /* 保険診療と自由診療の違い */
  .photo01 { height: 400px; }
  /* .photo02 { margin-bottom: 15%; height: 400px; background: url(images/page_doctor8.jpg) no-repeat 83% top/cover; } */
  .photo03 { margin-bottom: 15%; height: 400px; background: url(images/page_doctor3.jpg) no-repeat 50% top/cover; }
  /* .photo04 { margin-bottom: 15%; height: 400px; background: url(images/page_micro1.jpg) no-repeat 50% top/cover; } */
  .photo05 { margin-bottom: 15%; height: 400px; background: url(images/page_doctor5.jpg) no-repeat 55% top/cover; }
  /* .photo07 { margin-bottom: 15%; height: 400px; background: url(images/page_micro2.jpg) no-repeat 75% top/cover; } */
  /* .photo08 { margin-bottom: 15%; height: 400px; background: url(images/page_micro3.jpg) no-repeat 35% top/cover; } */
  .photo09 { margin-bottom: 15%; height: 400px; background: url(images/page_kidsroom2.jpg) no-repeat 10% top/cover; }
  /* .photo10 { margin-bottom: 15%; height: 400px; background: url(images/page_doctor8.jpg) no-repeat 80% top/cover; } */
  .photo11 { margin-bottom: 15%; height: 400px; background: url(images/page_other2.jpg) no-repeat 60% top/cover; }
  /* .photo12 { margin-bottom: 15%; height: 400px; background: url(images/page_recep1.jpg) no-repeat 30% top/cover; } */
  /* .photo13 { margin-bottom: 15%; height: 400px; background: url(images/page_teeth3.jpg) no-repeat 45% top/cover; } */
  .photo14 { margin-bottom: 15%; height: 400px; background: url(images/page_outside3.jpg) no-repeat 50% top/cover; }
  /* .photo15 { margin-bottom: 15%; height: 400px; background: url(images/page_teeth2.jpg) no-repeat 20% top/cover; } */
  /* .photo16 { margin-bottom: 15%; height: 400px; background: url(images/page_ope3.jpg) no-repeat 5% top/cover; } */
  /* .photo17 { margin-bottom: 15%; height: 400px; background: url(images/page_doctor8.jpg) no-repeat 80% top/cover; } */
  
	body.page table.normal_table th { width: 20%; }
	body.page table.normal_table th, body.page table.normal_table td { padding: 4% 3%; font-size: 14px; }
    body.page table.normal_table .m-btn { width: 100%; }
	ul.list_half {
	margin: 0 auto 5%;
	width: 100%;
	text-align: center;
	}
	ul.list_half li {
		display: inline-block;
		margin: 0 0 2%;;
		width: 100%;
		text-align: center;
	}

	ul.list_four {
        margin: 0 auto 5%;
        width: 100%;
        text-align: center;
	}
	ul.list_four li {
		display: inline-block;
		margin: 0 auto 2%;;
		width: 100%;
		text-align: center;
	}

   ol.number_list {
	margin: 2% auto 10%;
	padding: 4% 3% 4% 9%;
	width: 90%;
	border-radius: 20px;
	border: 1px solid #ddd;
	border-bottom: 1px solid #aaa;
    }
	ol.number_list li {
		display: inline-block;
		list-style-type: none;
		counter-increment: number;
		margin-bottom: 1%;
		font-size: 15px;
		line-height: 1.6;
	}
	ol.number_list li:before {
		content: counter(number) ".";
		margin-left: -22px;
		margin-right: 5px;
		font-size: 18px;
		color: #4baa16;
	}
	  blockquote {
    margin: 5% auto 10%;
    padding: 5%;
    width: 90%;
    font-size: 1.5rem;
    }
	#btn { padding: 15px 0; width: 80%; font-size: 20px; }
    ol.breadcrumbs { margin: 2% auto 5%; width: 85%; }
    ol.breadcrumbs li { display: inline; padding: 5px 5px 5px 0; font-size: 12px; line-height: 1.4em; }
    ol.breadcrumbs li a { padding:5px 15px 5px 0; height:100%; background-image: url(images/common/topicpath.png);  background-position: center right; background-repeat: no-repeat; font-size: 12px; text-decoration: none; line-height: 1.4em; }
    ul.pre_next{margin:5% 0 10%;text-align:center;}
    ul.pre_next a{font-size:12px;text-decoration:underline;text-align:right;line-height:1.2em;}
    ul.pre_next img { float: left; width: 35%; margin-right: 5%; }
    .pre_next01, .pre_next03 { width: 45%; }
    .pre_next02 { width: 5%; }
    .page-block.-bg-01 { padding: 30px 0 0; }

    ul.points {
	    padding: 45% 5% 5%;
        width: 95%;
    }
    ul.points:before{
        left: 0;
        right: 0;
        margin: 0 auto;
    }
    ul.points li {
    	margin: 0 5% 5% 10%;
    	width: 90%;
    }

}

.double_line_red{
	border:double 5px #ff002b;    /* 太さ5pxの赤色の二重線の枠線をひく*/
}

.double_line_grey{
	border:double 5px #c0c0c0;    /* 太さ5pxの灰色の二重線の枠線をひく*/
}

.l-header-nav > ul > li {
  white-space: nowrap;
}

h3.calendar-title {
  text-align: center;
  font-size: 28px !important;
}

.calendar-caption, .monthly-prev *, .monthly-next *  {
  font-size: 20px !important;
}

.monthly-prev .no-link, .monthly-next .no-link {
  display: none;
}

.multiple-calendar table, .multiple-calendar th, .multiple-calendar td {
  border: 1px solid rgb(141, 124, 108);
}

.week-title, .day-number, .calendar-mark * {
  font-size: 20px !important;
}

.monthly-prev ::before {
  content:"←";
}

.monthly-next ::after {
  content:"→";
}

.mtssb-timetable-name {
  display: none;
}

.mtssb-timetable-date {
  font-size: 16pt;
}

th.day-left, th.day-right {
  font-size: 1.5rem !important;
}

.day-right .calendar-mark {
	font-size: 20px !important;
}

.mtssb-daily-action button, #action-button button {
  -webkit-appearance: none;
  appearance: button none;
  padding: 8px 16px !important;
  border-radius: 32px;
  border: 1px solid #ccc;
  min-width: 160px;
  color: #000;
  background-color: #ccc;
  font-size: 14px !important;
}

#booking-form {
  margin: 0 auto 40px;
  width: 75%;
}

#booking-form * {
  font-size: 14px !important;
}

@media (max-width: 480px) {
    #booking-option-fieldset table th,
    #booking-option-fieldset table td,
    #booking_client-fieldset table th,
    #booking_client-fieldset table td,
    #booking-reservation-fieldset table th,
    #booking-reservation-fieldset table td,
    #booking-message-fieldset table th,
    #booking-message-fieldset table td,
    #booking-confirm-fieldset table th,
    #booking-confirm-fieldset table td {
        display: block;
        float: none;
        width: 90%;
        text-align: center;
        overflow: auto;
    }
	
    #booking-option-fieldset table th,
    #booking_client-fieldset table th,
    #booking-reservation-fieldset table th,
    #booking-message-fieldset table th,
	#booking-confirm-fieldset table th {
		background-color: #eee;
	}
}

/* 予約ステータスウインドウの中央揃え設定 */
.rsv-status-wrapper {
  display: flex;
  justify-content: center; /* 横方向の中央揃え */
  align-items: center;     /* 縦方向の中央揃え */
  flex-wrap: wrap;         /* 画面幅が狭いときに自動で折り返す */
  gap: 10px;               /* ウィンドウ同士の隙間（お好みで調整） */
  width: 100%;
  margin: 20px auto;       /* 上下の余白 */
}


/* 診療時間カードコンテナ */
.clinic-schedule-container {
  max-width: 680px;
  margin: 0 auto;
  font-family: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  color: #1e293b;
  box-sizing: border-box;
}

.clinic-schedule-container * {
  box-sizing: border-box;
}

/* カード共通枠組み */
.schedule-card {
  margin-bottom: 24px;
  background: #ffffff;
  border: 1.5px solid #94a3b8;
  border-radius: 0;
  overflow: hidden;
}

/* ヘッダー帯部分 */
.schedule-header {
  padding: 10px 0;
  color: #ffffff;
  font-size: 24px;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.05em;
  line-height: 1.3;
}

/* 各曜日のカラー指定 */
.color-weekday .schedule-header {
  background-color: #008fa6; /* 月〜金：ターコイズブルー */
}

.color-sat .schedule-header {
  background-color: #3b66a6; /* 土：落ち着いたブルー */
}

.color-sun .schedule-header {
  background-color: #ba0c0c; /* 日：レッド */
}

/* 時間表示エリア */
.schedule-body {
  display: flex;
  justify-content: center;
  align-items: baseline;
  padding: 24px 15px;
  background-color: #ffffff;
}

/* 時間テキスト */
.schedule-time {
  font-size: 28px;
  font-weight: 800;
  letter-spacing: 0.03em;
  color: #0f172a;
}

/* （お昼休みなし）等の注釈文字 */
.schedule-note {
  margin-left: 10px;
  font-size: 18px;
  font-weight: 700;
  color: #0f172a;
}

/* 最下部の注記 */
.schedule-footer-note {
  margin-top: 28px;
  font-size: 13px;
  font-weight: 600;
  text-align: center;
  color: #334155;
  letter-spacing: 0.03em;
}

/* スマートフォン表示用のレスポンシブ対応 */
@media screen and (max-width: 767px) {
  .schedule-card {
    margin-bottom: 16px;
  }
  .schedule-header {
    font-size: 18px;
    padding: 8px 0;
  }
  .schedule-body {
    padding: 16px 10px;
    flex-wrap: wrap;
  }
  .schedule-time {
    font-size: 18px;
  }
  .schedule-note {
    font-size: 14px;
    margin-left: 6px;
  }
  .schedule-footer-note {
    font-size: 11px;
    margin-top: 18px;
  }
}

/* FAQ全体のコンテナ設定 */
.faq-container {
  max-width: 900px;
  margin: 0 auto;
  padding: 60px 20px;
  background-color: #f2f2f2;
  font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
  box-sizing: border-box;
}

/* タイトルエリア */
.faq-title-wrap {
  display: flex;
  align-items: baseline;
  gap: 16px;
  margin-bottom: 24px;
  padding-bottom: 12px;
  border-bottom: 1px solid #bcbbba;
}

.faq-main-ttl {
  margin: 0;
  font-size: 26px;
  font-weight: 500;
  color: #222222;
  letter-spacing: 0.08em;
}

.faq-sub-ttl {
  font-family: "Times New Roman", serif;
  font-size: 16px;
  color: #b89f50;
  letter-spacing: 0.05em;
}

/* リスト全体の余白 */
.faq-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

/* FAQカード単体 */
.faq-item {
  width: 100%;
  border: none;
}

/* 質問バー（クリック領域） */
.faq-question {
  display: flex;
  align-items: center;
  padding: 16px 24px;
  background-color: #ffffff;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.03);
  cursor: pointer;
  list-style: none; /* デフォルトの三角アイコンを非表示 */
  user-select: none;
  position: relative;
}

.faq-question::-webkit-details-marker {
  display: none; /* Safari向けのデフォルトアイコン非表示 */
}

/* Q番号 (Q1., Q2.など) */
.faq-q-num {
  font-family: "Times New Roman", serif;
  font-size: 26px;
  font-weight: 400;
  color: #b89f50;
  margin-right: 18px;
  min-width: 44px;
  line-height: 1;
}

/* 質問テキスト */
.faq-q-txt {
  font-size: 15px;
  color: #333333;
  letter-spacing: 0.03em;
  flex-grow: 1;
}

/* 右側の「くの字」矢印アイコン */
.faq-arrow {
  display: inline-block;
  width: 13px;
  height: 13px;
  border-top: 2.5px solid #b89f50;
  border-right: 2.5px solid #b89f50;
  transform: rotate(45deg); /* 右向き */
  transition: transform 0.25s ease;
  margin-left: 15px;
  flex-shrink: 0;
}

/* 開いた状態（details[open]）の矢印 */
.faq-item[open] .faq-arrow {
  transform: rotate(135deg); /* 下向き */
}

/* 回答エリア */
.faq-answer {
  padding: 18px 24px 10px 24px;
  line-height: 1.85;
  animation: faqFadeIn 0.3s ease;
}

.faq-a-head {
  display: flex;
  align-items: flex-start;
}

/* A番号 (A5.など) */
.faq-a-num {
  font-family: "Times New Roman", serif;
  font-size: 26px;
  font-weight: 400;
  color: #b89f50;
  margin-right: 18px;
  min-width: 44px;
  line-height: 1.2;
}

/* 回答文本文 */
.faq-a-body {
  font-size: 14.5px;
  color: #333333;
  letter-spacing: 0.03em;
}

/* 回答文内のリンク */
.faq-link {
  color: #222222;
  text-decoration: underline;
}

.faq-link:hover {
  color: #b89f50;
}

/* 回答が開く際のアニメーション */
@keyframes faqFadeIn {
  from {
    opacity: 0;
    transform: translateY(-5px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* スマホ表示対応 (画面幅767px以下) */
@media screen and (max-width: 767px) {
  .faq-container {
    padding: 40px 15px;
  }
  .faq-main-ttl {
    font-size: 20px;
  }
  .faq-question {
    padding: 14px 16px;
  }
  .faq-q-num, .faq-a-num {
    font-size: 21px;
    margin-right: 10px;
    min-width: 36px;
  }
  .faq-q-txt {
    font-size: 13.5px;
    line-height: 1.4;
  }
  .faq-arrow {
    width: 10px;
    height: 10px;
  }
  .faq-answer {
    padding: 14px 14px 6px 14px;
  }
  .faq-a-body {
    font-size: 13px;
  }
}

/* タブ制御ラジオボタンを隠す */
.menu-tab-container > input[type="radio"] {
  display: none;
}

/* タブバーの配置 */
.menu-tab-nav {
  display: flex;
  max-width: 780px;
  margin: 30px auto 40px;
  background-color: #f7f7f7;
  border: 1px solid #d9d9d9;
}

/* タブボタン基本スタイル（非アクティブ時） */
.menu-tab-btn {
  flex: 1;
  text-align: center;
  padding: 16px 10px;
  font-size: 1.6rem;
  font-family: "Noto Serif JP", serif;
  color: #777777;
  background-color: #ededed;
  cursor: pointer;
  transition: all 0.25s ease;
  user-select: none;
  letter-spacing: 0.05em;
}

/* 隣り合うボタンの境界線 */
.menu-tab-btn + .menu-tab-btn {
  border-left: 1px solid #d9d9d9;
}

/* 選択されたタブのスタイル（白背景） */
#tab-name:checked ~ .menu-tab-nav .btn-name,
#tab-trouble:checked ~ .menu-tab-nav .btn-trouble {
  background-color: #ffffff;
  color: #222222;
  font-weight: bold;
}

/* パネルの表示切り替え */
.menu-tab-panel {
  display: none;
}

#tab-name:checked ~ .panel-name,
#tab-trouble:checked ~ .panel-trouble {
  display: block;
  animation: menuFadeIn 0.3s ease;
}

@keyframes menuFadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

/* スマホ表示対応 */
@media screen and (max-width: 767px) {
  .menu-tab-nav {
    margin: 20px auto 30px;
  }
  .menu-tab-btn {
    font-size: 1.35rem;
    padding: 13px 5px;
  }
}

/* 院長からのご挨拶（下層ページ メインビジュアル見出し）の色と影を上書き */
body.page .main_visual h1,
body.single .main_visual h1,
body.error404 .main_visual h1,
body.archive .main_visual h1,
.main_visual h1 {
  color: #3f2e24 !important; /* 医院トーンに合わせた品のある濃いブラウン */
  font-weight: bold !important;
  text-shadow: 0 1px 4px rgba(255, 255, 255, 0.9), 0 0 12px rgba(255, 255, 255, 0.8) !important; /* 白い光彩でくっきり視認性を確保 */
}

/* フッターキャラクターの強制アニメーション */
footer img,
.l-footer img,
#footer img {
  display: inline-block !important;
  transform-origin: center bottom !important;
  animation: charaFloating 3s ease-in-out infinite !important;
}

@keyframes charaFloating {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-10px) scale(1.02); }
}