@charset "UTF-8";
/* ----------------------------------------------------------------------------------
リセット　_reset.scss
---------------------------------------------------------------------------------- */
html { box-sizing: border-box; }

*, *::before, *::after { box-sizing: inherit; }

ol, ul { margin: 0; padding: 0; list-style: none; }

h1, h2, h3, h4, h5, h6 { margin: 0; padding: 0; font-weight: normal; font-size: inherit; }

img { max-width: 100%; height: auto; vertical-align: bottom; }

/* ----------------------------------------------------------------------------------
モジュール　_module.scss
---------------------------------------------------------------------------------- */
/* clearfix -------------------------------------- */
.cf::before, .cf::after { content: ""; display: block; }

.cf::after { clear: both; }

/* float -------------------------------------- */
.fl_l { float: left; }

.fl_r { float: right; }

/* txt -------------------------------------- */
.txt_c { text-align: center; }

.txt_l { text-align: left; }

.txt_r { text-align: right; }

.bold { font-weight: bold; }

/* 囲い文字 -------------------------------------- */
.frame_01 { background: #e1eee2; padding: 1rem; margin-bottom: 2rem; }
@media screen and (min-width: 48em), print { .frame_01 { padding: 2.4rem 2rem 2rem; margin-bottom: 3rem; } }

/* img -------------------------------------- */
.img_c { display: block; max-width: 100%; height: auto; margin: 1rem auto; }

.img_l, .img_r { display: block; max-width: 80%; height: auto; margin: 1rem auto; }

@media screen and (min-width: 48em), print { .img_l { float: left; margin: 0 2rem 2rem 0; }
  .img_r { float: right; margin: 0 0 2rem 2rem; } }
.border_item { border: 2px solid #eee; display: block; width: fit-content; }

/* PC・SP　表示・非表示 -------------------------------------- */
.sp_n { display: none; }

@media screen and (min-width: 48em), print { .sp_n { display: block; }
  .pc_n { display: none; } }
/* マージン・パディング回り -------------------------------------- */
.mt60 { margin-top: 6rem !important; }

.mt40 { margin-top: 4rem; }

.mt30 { margin-top: 3rem; }

.mt20 { margin-top: 2rem; }

.mt10 { margin-top: 1rem; }

section > section:first-of-type { margin-top: 2rem; }

.main > section ~ section, .flex2 > section ~ section { margin-top: 4rem; }

.main > section section ~ section, .flex2 > section section ~ section { margin-top: 4rem; }

.main > section > section section ~ section, .flex2 > section > section section ~ section { margin-top: 4rem; }

.main > section > section > section section ~ section, .flex2 > section > section > section section ~ section { margin-top: 2rem; }

@media screen and (min-width: 48em), print { .mt60 { margin-top: 10rem !important; }
  .mt40 { margin-top: 8rem; }
  .mt30 { margin-top: 6rem; }
  .mt20 { margin-top: 4rem; }
  .mt10 { margin-top: 2rem; }
  section > section:first-of-type { margin-top: 4rem; }
  .main > section ~ section, .flex2 > section ~ section { margin-top: 8rem; }
  .main > section section ~ section, .flex2 > section section ~ section { margin-top: 6rem; }
  .main > section > section section ~ section, .flex2 > section > section section ~ section { margin-top: 6rem; }
  .main > section > section > section section ~ section, .flex2 > section > section > section section ~ section { margin-top: 4rem; } }
/* タイムテーブル -------------------------------------- */
.tbl_time { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 1.4rem; table-layout: fixed; }
.tbl_time caption { caption-side: bottom; text-align: left; font-size: 1.2rem; margin-top: 0.4rem; }
.tbl_time tr th { font-weight: normal; }
.tbl_time tr th[scope="col"] { padding: 0.4rem 0; font-size: 1.2rem; color: #fff; text-align: center; font-weight: normal; border-bottom: 1px solid #eeeeee; }
.tbl_time tr th[scope="col"]:first-child { width: 32%; }
.tbl_time tr th.time { border-bottom: 1px solid #eeeeee; text-align: right; }
.tbl_time tr td { text-align: center; font-size: 1rem; color: #afc77e; padding: 0.6rem 0.4rem; border-bottom: 1px solid #eeeeee; line-height: 1; }
.tbl_time tr td.color { color: #fff; }
.tbl_time tr:last-child th, .tbl_time tr:last-child td { border-bottom: none; }

@media screen and (min-width: 48em), print { .tbl_time { font-size: 1.6rem; }
  .tbl_time caption { margin-top: 1rem; font-size: 1.6rem; }
  .tbl_time tr th[scope="col"] { padding: 0 0 0.6rem; font-size: 1.6rem; }
  .tbl_time tr th[scope="col"]:first-child { width: 34%; }
  .tbl_time tr th.time { padding: 0.6rem 0.4rem; }
  .tbl_time tr td { padding: 1.2rem 0; } }
/* カレンダー -------------------------------------- */
section .caledit { width: 100% !important; }
section .caledit tr.month th { font-family: "Shippori Mincho", serif; border: none; background: none; font-weight: normal; color: #9a9a9a; text-align: left; font-size: 3rem; }
section .caledit tr.week th { border: none; background: none; color: #9a9a9a; font-weight: normal; }
section .caledit tr.day td { border: none; font-family: "游ゴシック", YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif"; }
section .caledit tr.day td.notTheMonth { background: #fff !important; color: #fff !important; border: none; }
section .caledit tr.day td.outPatient { background: #ffcac9; }
section .caledit tr.day td.kyosei { background: #cde2f3; }
section .cal_status { display: -webkit-flex; display: flex; -webkit-justify-content: flex-start; justify-content: flex-start; -webkit-align-items: center; align-items: center; }
section .cal_status li::after { content: ""; display: inline-block; vertical-align: middle; width: 2rem; height: 2rem; margin-left: 0.2rem; background: #222; }
section .cal_status li.close::after { background: #ffcac9; }
section .cal_status li.kyosei::after { background: #cde2f3; }
section .cal_status li ~ li { margin-left: 0.6rem; }

@media screen and (min-width: 48em), print { section .cal_flex { display: -webkit-flex; display: flex; -webkit-justify-content: space-between; justify-content: space-between; -webkit-align-items: flex-start; align-items: flex-start; }
  section .cal_flex .caledit { width: 48% !important; }
  section .cal_flex .caledit tr.month th { font-size: 3.6rem; line-height: 0.8; padding: 0 0 1.2rem; }
  section .cal_flex .caledit tr.week th { font-size: 1.6rem; }
  section .cal_status li::after { margin-right: 2rem; width: 1.4rem; height: 1.4rem; vertical-align: unset; } }
/* グーグルマップ -------------------------------------- */
.gmap { width: 100%; }
.gmap iframe { width: 100%; height: 100%; border: none; }

/* タイトル回り -------------------------------------- */
.tit_01 { background: url(../img/tit_01.jpg) no-repeat center top/auto 100%; font-size: 2.2rem; font-family: "Shippori Mincho", serif; color: #4f7251; padding: 3rem 1rem; margin: 0 0 3rem; }

.tit_02 { color: #4f7251; font-size: 2rem; font-family: "Shippori Mincho", serif; margin: 0 0 2rem; padding: 1rem 0; line-height: 1.2; position: relative; z-index: 1; }
.tit_02 span { font-size: 1.4rem; display: block; }
.tit_02::before { content: ""; display: block; background: #f2f2f2; width: 60%; height: 3rem; position: absolute; top: 62%; transform: translateY(-50%); -webkit-transform: translateY(-50%); -ms-transform: translateY(-50%); left: 1rem; z-index: -1; }

body:not(.index) .tit_02 { color: #545454; }
body:not(.index) .tit_02::before { width: 4rem; height: 100%; top: 50%; left: -1rem; }

.tit_03 { color: #5f8161; font-size: 1.8rem; display: inline-block; font-family: "Shippori Mincho", serif; line-height: 1.2; margin: 0 0 1rem; padding-right: 3.2rem; position: relative; }
.tit_03::before { content: ""; height: 0.2rem; width: 88vw; display: block; position: absolute; z-index: -1; left: 0; top: 1rem; background: #eee; }
.tit_03::after { content: ""; height: 100%; width: 100%; position: absolute; top: 0; left: -3rem; background: #fff; display: block; z-index: -1; }

.tit_04 { color: #9cb26d; font-weight: bold; font-size: 1.6rem; line-height: 1.2; padding: 0 0 0 0.3rem; margin: 0 0 1rem; }

.tit_05 { font-weight: bold; font-size: 1.4rem; line-height: 1.2; margin: 0 0 1rem; padding-left: 3.4rem; position: relative; }
.tit_05::before { content: ""; width: 3rem; height: 1px; background: #ccc; position: absolute; display: inline-block; position: absolute; left: 0; top: 0.7rem; }

.tit_06 { font-size: 1.4rem; font-weight: bold; line-height: 1.2; margin: 0 0 1rem; }
.tit_06::before { content: "〇"; font-family: "fontello"; margin-right: 0.4rem; color: #a8c769; }

@media screen and (min-width: 48em), print { .tit_01 { background: url(../img/tit_01.jpg) no-repeat center center/auto auto; font-size: 3.8rem; height: 21.4rem; margin: 0 0 3rem; display: -webkit-flex; display: flex; -webkit-justify-content: center; justify-content: center; -webkit-align-items: center; align-items: center; }
  .tit_02 { font-size: 3rem; margin: 0 0 2rem; padding: 1rem 0 0 2.2rem; letter-spacing: 0.6rem; -ms-writing-mode: tb-rl; writing-mode: vertical-rl; display: -webkit-flex; display: flex; -webkit-align-items: flex-end; align-items: flex-end; }
  .tit_02 span { -webkit-writing-mode: horizontal-tb; -ms-writing-mode: lr-tb; writing-mode: horizontal-tb; letter-spacing: 0; padding-left: 1rem; margin-top: 4rem; font-size: 2rem; }
  .tit_02::before { height: 100%; width: 21rem; left: 0; }
  body:not(.index) .tit_02 { -ms-writing-mode: lr-tb; writing-mode: horizontal-tb; margin: 6rem 0 6rem; padding: 2rem 0 2rem 4.4rem; }
  body:not(.index) .tit_02::before { width: 13.4rem; min-height: 13.4rem; height: 100%; }
  .tit_03 { font-size: 2.6rem; margin: 0 0 2rem; }
  .tit_03::before { top: 1.6rem; max-width: 1100px; }
  .tit_03::after { width: 110%; }
  .tit_04 { font-size: 2rem; margin: 0 0 2rem; padding: 0; }
  .tit_05 { font-size: 1.8rem; margin: 0 0 1.6rem; padding: 0 0 0 3.8rem; }
  .tit_05::before { top: 0.9rem; }
  .tit_06 { font-size: 1.8rem; margin: 0 0 1.6rem; } }
/* リスト回り -------------------------------------- */
.lst_ul01 li { text-indent: -1.5rem; padding-left: 1.8rem; padding-bottom: 1rem; line-height: 1.4; }
.lst_ul01 li::before { content: "■"; margin-right: 0.4rem; color: #a8c769; font-size: 80%; position: relative; top: -0.1rem; }
.lst_ul01 li.none::before { content: none; }

.lst_ol01 { margin: 1rem 0 1rem 2.6rem; }
@media screen and (min-width: 48em), print { .lst_ol01 { margin: 1rem 0 1rem 3rem; } }
.lst_ol01 li { line-height: 1.4; counter-increment: number 1; text-indent: -1rem; padding: 0 0 1rem 0; }
.lst_ol01 li::before { display: inline-block; content: counter(number) "."; margin-right: 0.8rem; font-family: "Lato", sans-serif; color: clr_blue; font-weight: bold; }

.lst_dl01 dt { font-weight: bold; }
.lst_dl01 dd { margin: 0 0 0.6rem; }

@media screen and (min-width: 48em), print { .lst_dl01 dt { float: left; width: 15%; clear: left; }
  .lst_dl01 dd { margin: 0 0 0.6rem; padding-left: 5rem; } }
/* フレックス回り -------------------------------------- */
.flex2 > section, .flex2 > li { margin-bottom: 1.5rem; }

.flex3 { display: -webkit-flex; display: flex; -webkit-justify-content: space-between; justify-content: space-between; -webkit-flex-wrap: wrap; flex-wrap: wrap; }
.flex3 > li { width: 100%; margin-bottom: 1.5rem; }

@media screen and (min-width: 48em), print { .flex2 { display: -webkit-flex; display: flex; -webkit-justify-content: space-between; justify-content: space-between; -webkit-flex-wrap: wrap; flex-wrap: wrap; }
  .flex2 > section, .flex2 > li { width: 48%; margin: 0 !important; }
  .flex3 li { width: 31%; margin-bottom: 0; } }
.img_flex, .img_flex2 { margin: 2rem 0 0; }
.img_flex li, .img_flex2 li { margin: 0 0 2rem; }
.img_flex li img, .img_flex2 li img { display: block; max-width: 80%; margin: 0 auto 1rem; }
.img_flex li > figure, .img_flex2 li > figure { margin: 0; padding: 0; }
.img_flex li > figure figcaption, .img_flex2 li > figure figcaption { text-align: center; padding: 0.4rem 0 0; }
.img_flex.-flex-start, .img_flex2.-flex-start { align-items: flex-start; }
.img_flex.-flex-start p, .img_flex2.-flex-start p { flex: 1; }

@media screen and (min-width: 48em), print { .img_flex { margin: 4rem 0 0; display: -webkit-flex; display: flex; -webkit-justify-content: flex-start; justify-content: flex-start; -webkit-align-items: flex-end; align-items: flex-end; gap: 0 3rem; }
  .img_flex li { width: 30%; margin: 0; }
  .img_flex li img { max-width: 100%; } }
.img_flex2 { margin: 6rem 0 0; display: -webkit-flex; display: flex; -webkit-justify-content: flex-start; justify-content: flex-start; -webkit-align-items: flex-end; align-items: flex-end; -webkit-flex-wrap: wrap; flex-wrap: wrap; gap: 3rem 4%; }
.img_flex2 li { width: 48%; margin: 0; }
.img_flex2 li img { max-width: 100%; }

.img_flex4 { margin: 2rem 0 0; }
.img_flex4 li { margin: 0 0 2rem; }
.img_flex4 li figure { margin: 0; padding: 0; }
.img_flex4 li figure img { display: block; max-width: 80%; height: auto; margin: 0 auto 0.8rem; }
.img_flex4 li figure figcaption { padding: 0.4rem 0 0.4rem; text-align: center; }

@media screen and (min-width: 48em), print { .img_flex4 { margin: 6rem 0 0; display: -webkit-flex; display: flex; -webkit-justify-content: space-between; justify-content: space-between; -webkit-align-items: flex-end; align-items: flex-end; }
  .img_flex4 li { width: 25%; } }
/* リンク -------------------------------------- */
*[class*="btn_"] > a { position: relative; text-align: left; padding: 0.6rem 3.6rem 0.6rem 1rem; display: inline-block; font-family: "Shippori Mincho", serif; text-decoration: none !important; }
@media screen and (min-width: 48em), print { *[class*="btn_"] > a { padding: 2rem 10rem 2rem 5rem; font-size: 2rem; } }
*[class*="btn_"] > a::after { content: "\e811"; font-family: "fontello"; font-size: 2.2rem; position: absolute; top: 50%; right: 0.6rem; transform: translateY(-50%); -webkit-transform: translateY(-50%); -ms-transform: translateY(-50%); }
@media screen and (min-width: 48em), print { *[class*="btn_"] > a::after { right: 4.5rem; font-size: 4.2rem; } }

.btn_01 { display: block; text-align: center; }
@media screen and (min-width: 48em), print { .btn_01 { text-align: left; } }
.btn_01 a { color: #4f7251; border-top: 1px solid #bcc8bc; border-bottom: 1px solid #bcc8bc; }
.btn_01 a:hover { background: #c3e57d; }

.btn_02 { display: block; text-align: center; }
@media screen and (min-width: 48em), print { .btn_02 { text-align: left; } }
.btn_02 a { color: #fff; background: #5f8161; display: inline-block; text-decoration: none !important; }
.btn_02 a:hover { background: #8dc21f; }
.btn_02.-icon a { padding: 2rem 5rem 2rem 5rem; }
.btn_02.-icon a::after { content: none; }
.btn_02.-icon .icon-calendar { display: inline-block; padding-left: .5em; font-family: fontello; font-style: normal; font-weight: normal; }

/* テーブル -------------------------------------- */
.tbl_01 { table-layout: fixed; border-collapse: collapse; width: 100%; }
.tbl_01 tr th { width: 30%; background: #e1eee2; text-align: center; font-weight: normal; border: 1px solid #a2b2a2; padding: 0.8rem; }
@media screen and (min-width: 48em), print { .tbl_01 tr th { padding: 1rem 1.4rem; } }
.tbl_01 tr td { padding: 0.8rem; border: 1px solid #a2b2a2; }
@media screen and (min-width: 48em), print { .tbl_01 tr td { padding: 1rem 1.4rem; } }

.tbl_access { table-layout: fixed; border-collapse: separate; border-collapse: 0.2rem; }
.tbl_access tr th { width: 37%; background: #d9edac; text-align: center; font-weight: normal; padding: 0.8rem; }
.tbl_access tr td { padding: 0.8rem; }

@media screen and (min-width: 48em), print { .tbl_access tr th { width: 30%; } }
.tbl_price { /*table-layout: fixed;*/ table-layout: auto; caption-side: bottom; border-collapse: collapse; width: 100%; }
.tbl_price caption { text-align: left; padding: 0.2rem 0 0; }
.tbl_price tbody tr th { padding: 0.4rem 0.2rem; background: #e1eee2; text-align: center; font-weight: normal; border: 1px solid #a2b2a2; }
.tbl_price tbody tr td { /*padding: 0.4rem;*/ padding: 0.75rem; border: 1px solid #a2b2a2; text-align: left; white-space: nowrap; }
.tbl_price ~ .tbl_price { margin: 1.4rem 0 0; }
.tbl_price.-column tbody tr th { white-space: nowrap; }
.tbl_price.-column tbody tr > :not(:first-child) { width: 80%; }

@media screen and (min-width: 48em), print { .tbl_price caption { padding: 0.8rem 0 0; }
  .tbl_price tbody tr th { padding: 1rem 0.2rem; text-align: center; /*          &:first-child { width: 25%; } &:last-child { width: 33%; }*/ }
  .tbl_price tbody tr td { padding: 1rem; text-align: left; white-space: wrap; /*padding: 1rem 0.4rem;
text-align: center;*/ /*          &:last-child { text-align: left; padding: 1rem 2rem; }*/ }
  .tbl_price ~ .tbl_price { margin: 2.6rem 0 0; } }
.tbl_price02 { table-layout: fixed; width: 100%; border-collapse: collapse; caption-side: top; }
.tbl_price02 caption { font-weight: bold; text-align: center; font-size: 1.6rem; line-height: 1.2; padding: 0 0 0.6rem; }
.tbl_price02 tr th, .tbl_price02 tr td { border: 1px solid #a2b2a2; padding: 0.4rem 0.2rem; }
.tbl_price02 thead tr th { background: #e1eee2; }
.tbl_price02 thead tr th span { font-size: 90%; line-height: 1.2; }
.tbl_price02 thead tr:first-child th { background: #deedc6; }
.tbl_price02 thead tr:first-child th:first-child { background: #5f8161; color: #fff; }
.tbl_price02 thead tr:nth-child(2) th { background: #f2f2f2; }
.tbl_price02 tbody tr th { background: #e1eee2; }
.tbl_price02 tbody tr td { text-align: right; }

@media screen and (min-width: 48em), print { .tbl_price02 caption { font-size: 2rem; line-height: 1.4; padding: 0 0 1.2rem; }
  .tbl_price02 tr th, .tbl_price02 tr td { padding: 1rem 1rem; }
  .tbl_price02 thead tr th { background: #e1eee2; }
  .tbl_price02 tbody tr td { padding: 1rem 2rem; } }
/* アイコン -------------------------------------- */
.icon_tel::before { content: "\e802"; font-family: "fontello"; margin-right: 0.2rem; color: #a4a4a4; }

.icon_free_tel::before { content: ""; width: 1.8rem; height: 1rem; display: inline-block; background: url("../img/icon_tel.svg") no-repeat center/contain; margin-right: 0.2rem; }
@media screen and (min-width: 48em), print { .icon_free_tel::before { width: 3rem; height: 2rem; vertical-align: middle; margin-right: 0.6rem; } }

/* フローアイテム -------------------------------------- */
.flow { counter-reset: flow_num; margin: 3rem 0 0; }
.flow section { counter-increment: flow_num 1; }
.flow section .tit_03 { display: -webkit-flex; display: flex; -webkit-justify-content: flex-start; justify-content: flex-start; -webkit-align-items: center; align-items: center; position: relative; padding-left: 4rem; }
.flow section .tit_03::before { content: counter(flow_num); display: -webkit-flex; display: flex; -webkit-justify-content: center; justify-content: center; -webkit-align-items: center; align-items: center; color: #fff; min-width: 3.6rem; width: 3.6rem; height: 3.6rem; position: static; position: absolute; left: 0; top: 50%; transform: translateY(-50%); -webkit-transform: translateY(-50%); -ms-transform: translateY(-50%); background: #aabbaa; }
.flow section .tit_03::after { content: none; }

@media screen and (min-width: 48em), print { .flow section { margin-top: 3rem !important; }
  .flow section .tit_03 { padding-left: 6rem; }
  .flow section .tit_03::before { width: 5rem; height: 5rem; min-width: 5rem; } }
/* Q&A -------------------------------------- */
.dl_QnA dt { margin: 0 0 0.4rem; padding: 0.6rem 0.8rem 0.4rem; border-radius: 7px; font-weight: bold; font-size: 110%; background: #e1eee2; }
.dl_QnA dt::before { content: "Q"; color: #4fa929; font-weight: bold; font-size: 2.2rem; margin-right: 0.6rem; }
.dl_QnA dd { margin: 0 0 2rem; }
.dl_QnA dd > *:first-child::before { content: "A"; color: #4fa929; background: #e1eee2; border-radius: 7px; font-weight: bold; font-size: 2.2rem; padding: 0.6rem 0.8rem 0.4rem; margin-right: 0.6rem; }

@media screen and (min-width: 48em), print { .dl_QnA dt { padding: 1rem 1.6rem 0.8rem; }
  .dl_QnA dt::before { font-size: 2.6rem; }
  .dl_QnA dd { margin: 0 0 4rem; }
  .dl_QnA dd > *:first-child::before { font-size: 2.6rem; margin-right: 0.8rem; } }
.scroll { overflow-x: auto !important; }

.scroll::-webkit-scrollbar { height: 8px; }

.scroll::-webkit-scrollbar-track { background: #F1F1F1; }

.scroll::-webkit-scrollbar-thumb { background: #BCBCBC; }

/* ----------------------------------------------------------------------------------
共通　_common.scss
---------------------------------------------------------------------------------- */
html { font-size: calc(100vw / 32); font-family: "游ゴシック", YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif"; scroll-behavior: smooth; scroll-padding-top: 60px; }

body { background: #fff; color: #212121; }
body.fixed { overflow: hidden; }
@media screen and (min-width: 48em), print { body.fixed { padding-right: 1.7rem; } }

a { color: inherit; text-decoration: none; }

.wrap { padding: 0 1rem 0; }

.main { font-size: 1.4rem; line-height: 1.6; padding: 0 0 0; }
.main a:not([href*="tel"]) { text-decoration: underline; }
.main a[class*="btn_"] { text-decoration: none; }

@media screen and (min-width: 48em), print { html { font-size: 62.5%; }
  body { min-width: 1200px; }
  body > .wrap { display: -webkit-flex; display: flex; -webkit-justify-content: space-between; justify-content: space-between; -webkit-flex-wrap: nowrap; flex-wrap: nowrap; margin: 10rem auto 0; }
  a { transition: 0.2s; }
  a:hover { opacity: 0.8; }
  .wrap { width: 1100px; margin: 0 auto; padding: 0; }
  .main { font-size: 1.6rem; padding: 0 0 0; width: 100%; } }
/* アイコンフォント -------------------------------------- */
@font-face { font-family: "fontello"; src: url("fontello/font/fontello.eot"); src: url("fontello/font/fontello.eot#iefix") format("embedded-opentype"), url("fontello/font/fontello.woff2") format("woff2"), url("fontello/font/fontello.woff") format("woff"), url("fontello/font/fontello.ttf") format("truetype"), url("fontello/font/fontello.svg#fontello") format("svg"); }
/* ヘッダー -------------------------------------- */
.header .wrap { margin: 1rem; padding: 1.4rem 0 0; }
.header .wrap .logo { height: 2.8rem; }
.header .wrap .logo a { display: block; width: 76%; height: 100%; background: url(../img/logo.svg) no-repeat left center/contain; text-indent: 100%; white-space: nowrap; overflow: hidden; }
.header .wrap .headR { margin: 1.4rem 0 0; }
.header .wrap .headR .tel { display: inline-block; font-size: 1.8rem; color: #5f8161; }
.header .wrap .headR .tel::before { content: "\e802"; font-family: "fontello"; font-size: 1.6rem; margin-right: 0.4rem; }
.header .wrap .headR .tel a { display: inline-block; }
.header .wrap .headR .info_txt { margin: 0.6rem 0 0; font-size: 1.4rem; line-height: 1.2; }
.header .wrap .headR .info_txt span:not(.time) { position: relative; padding-left: 0.4rem; }
.header .wrap .headR .info_txt span:not(.time)::before { content: ""; display: inline-block; width: 0.2rem; height: 100%; background: #6fbf60; position: absolute; left: 0; top: 50%; transform: translateY(-50%); -webkit-transform: translateY(-50%); -ms-transform: translateY(-50%); }
.header .wrap .headR .info_txt .time { display: block; text-align: center; margin: 0.8rem auto 0; padding: 0.4rem 1.2rem; color: #4f7251; background: #e6f6c4; font-family: "Shippori Mincho", serif; }

@media screen and (min-width: 48em), print { .header .wrap { margin: 0 auto 0; padding: 4rem 0 3.7rem; position: relative; display: -webkit-flex; display: flex; -webkit-justify-content: space-between; justify-content: space-between; -webkit-align-items: flex-start; align-items: flex-start; }
  .header .wrap .logo { width: 40rem; height: 5rem; margin-right: 11.5rem; }
  .header .wrap .logo a { width: 100%; }
  .header .wrap .headR { width: 60%; margin: 0; }
  .header .wrap .headR .tel { font-size: 2.2rem; }
  .header .wrap .headR .tel::before { margin-right: 0.4rem; font-size: 1.8rem; }
  .header .wrap .headR .info_txt { margin: -1rem 0 0; font-size: 1.6rem; line-height: 1; }
  .header .wrap .headR .info_txt span:not(.color) { padding-left: 0.8rem; }
  .header .wrap .headR .info_txt span:not(.color)::before { height: 80%; }
  .header .wrap .headR .info_txt .time { display: inline-block; font-size: 1.4rem; padding: 1rem 1.4rem; margin-left: 0.4rem; }
  .header .wrap .headR .info_txt .reserve a { font-size: 1.4rem; padding: 0.6rem 1.4rem; background: #9b9b9b; color: #fff; } }
/* メニュー -------------------------------------- */
#menu_btn { display: -webkit-flex; display: flex; -webkit-justify-content: center; justify-content: center; -webkit-align-items: center; align-items: center; -webkit-flex-direction: column; flex-direction: column; position: fixed; top: 2rem; right: 1rem; z-index: 1000; height: 6rem; width: 6rem; cursor: pointer; background: rgba(255, 255, 255, 0.5); }
#menu_btn ul { position: relative; height: 4.4rem; width: 4rem; }
#menu_btn ul::after { content: "Menu"; display: block; font-size: 1.2rem; position: absolute; bottom: 0; left: 0; right: 0; text-align: center; color: #4f7251; }
#menu_btn ul li { display: block; position: absolute; left: 0; width: 100%; height: 2px; background: #4f7251; border-radius: 4px; transition: all 0.4s; }
#menu_btn ul li.line_01 { top: 0; }
#menu_btn ul li.line_02 { top: 28%; transform: translateY(-50%); -webkit-transform: translateY(-50%); -ms-transform: translateY(-50%); }
#menu_btn ul li.line_03 { bottom: 1.9rem; }
#menu_btn.close ul::after { content: "Close"; }
#menu_btn.close ul li { transition: all 0.4s; }
#menu_btn.close ul li.line_01 { transform: translate(0, 0.7rem) rotate(45deg); }
#menu_btn.close ul li.line_02 { opacity: 0; }
#menu_btn.close ul li.line_03 { transform: translate(0, -1.7rem) rotate(-45deg); }

@media screen and (min-width: 48em), print { #menu_btn { top: 4rem; right: 2rem; }
  #menu_btn ul::after { font-size: 1.6rem; letter-spacing: -0.1rem; }
  #menu_btn ul li { height: 1px; }
  #menu_btn ul li.line_02 { top: 22%; }
  #menu_btn ul li.line_03 { bottom: 2.4rem; }
  #menu_btn.close { right: 3.8rem; }
  #menu_btn.close ul li.line_03 { transform: translate(0, -1.2rem) rotate(-45deg); } }
#nav { transform: translateX(100%); width: 90%; height: 120vh; position: fixed; top: 0; right: 0; z-index: 900; background: #fff; display: block; overflow-y: scroll; transition: all 0.3s; padding: 3rem 2rem 20rem; }
#nav.slide-in { transform: translateX(0); transition: all 0.3s; box-shadow: 0px 0px 15px -5px #777777; }
#nav .gnav li { margin: 0 0 1.2rem; }
#nav .gnav li a { display: block; line-height: 1.4; font-size: 1.4rem; color: #5f8161; font-weight: bold; }
#nav p { font-size: 1.4rem; color: #5f8161; font-weight: bold; }
#nav .tre_nav { color: #3b3b3b; }
#nav .tre_nav li { margin: 0 0 1.4rem; }
#nav .tre_nav li a { display: block; font-size: 1.4rem; line-height: 1.4; }
#nav .tre_nav li a::before { content: "・"; margin-right: 0.2rem; }

@media screen and (min-width: 48em), print { #nav { width: 60%; overflow-y: scroll; padding: 16rem 0 16rem 8.3rem; }
  #nav.slide-in { display: -webkit-flex; display: flex; -webkit-justify-content: flex-start; justify-content: flex-start; -webkit-align-items: flex-start; align-items: flex-start; }
  #nav .gnav { margin-right: 8.2rem; }
  #nav .gnav li { margin: 0 0 2.2rem; }
  #nav .gnav li a { line-height: 1.6; font-size: 1.6rem; }
  #nav p { font-size: 1.6rem; line-height: 1.6; margin: 0 0 1.8rem; }
  #nav .tre_nav li { margin: 0 0 1.4rem; }
  #nav .tre_nav li a { font-size: 1.6rem; } }
/* クリニック概要 -------------------------------------- */
.footer_bg { background: url("../img/footer_bg.png") no-repeat top/cover; }

.overview { padding: 4rem 0 0; font-size: 1.4rem; line-height: 1.6; color: #fff; }
.overview .clinic_name { text-align: center; margin: 0 0 2rem; }
.overview .clinic_name img { max-width: 80%; height: auto; }
.overview > .wrap .overviewR .tbl_time { margin: 1.6rem 0; }
.overview .gmap iframe { height: 30rem; }

@media screen and (min-width: 48em), print { .overview { margin: 0 0 0; padding: 10rem 0 0; font-size: 1.6rem; }
  .overview .clinic_name { margin: 0 0 4.7rem; }
  .overview .clinic_name img { max-width: 45rem; }
  .overview > .wrap { display: -webkit-flex; display: flex; -webkit-justify-content: space-between; justify-content: space-between; padding: 0 0 6rem; width: 75rem; }
  .overview > .wrap .overviewL { width: 48%; padding: 0 0; }
  .overview > .wrap .overviewL .lst_gaiyo li { line-height: 1.6; margin: 0 0 0.8rem; }
  .overview > .wrap .overviewR { width: 46%; padding: 0 0; }
  .overview > .wrap .overviewR .tbl_time { margin: 0; }
  .overview .gmap iframe { height: 50rem; } }
/* フッター -------------------------------------- */
#pageup { display: none; position: fixed; bottom: 6rem; right: 1rem; z-index: 1; cursor: pointer; }
#pageup a { display: block; color: #fff; width: 5rem; height: 5rem; text-align: center; background: url("../img/icon_pageup.svg") no-repeat center/contain; }
#pageup a span { display: none; }

@media screen and (min-width: 48em), print { #pageup { bottom: 3rem; right: 3rem; }
  #pageup a { width: 6.4rem; height: 6.4rem; }
  #pageup a::before { font-size: 5rem; } }
.tel_access { width: 100%; height: 5rem; background: #fff; visibility: hidden; position: fixed; bottom: 0; left: 0; right: 0; z-index: 1; font-size: 1.4rem; display: -webkit-flex; display: flex; -webkit-justify-content: space-between; justify-content: space-between; -webkit-align-items: center; align-items: center; }
.tel_access .tel { display: -webkit-flex; display: flex; -webkit-justify-content: center; justify-content: center; -webkit-align-items: center; align-items: center; text-align: center; width: 60%; height: 100%; font-size: 1.8rem; line-height: 1; }
.tel_access .tel a { height: 100%; display: -webkit-flex; display: flex; -webkit-justify-content: center; justify-content: center; -webkit-align-items: center; align-items: center; }
.tel_access .access { width: 40%; height: 100%; background: #efefef; }
.tel_access .access a { height: 100%; display: -webkit-flex; display: flex; -webkit-justify-content: center; justify-content: center; -webkit-align-items: center; align-items: center; }
.tel_access .access a::before { content: "\e810"; font-family: "fontello"; margin-right: 0.2rem; color: #c7c7c7; }

@media screen and (min-width: 48em), print { .tel_access { display: none !important; }
  .tel_access .tel, .tel_access .access { display: none; } }
.fixed_menu { display: none; }

@media screen and (min-width: 48em), print { .fixed_menu { display: block; position: fixed; top: 13rem; right: 0; z-index: 500; }
  .fixed_menu li { width: 4.8rem; position: relative; }
  .fixed_menu li::before { content: ""; display: block; width: 100%; height: 100%; position: absolute; top: 0; left: 0; z-index: -1; background: #fff; }
  .fixed_menu li a { display: -webkit-flex; display: flex; -webkit-justify-content: center; justify-content: center; -webkit-align-items: center; align-items: center; width: 100%; min-height: 12rem; padding: 1.6rem 0; -ms-writing-mode: tb-rl; writing-mode: vertical-rl; color: #fff; font-size: 1.6rem; letter-spacing: 0.2rem; }
  .fixed_menu li.cal a { background: linear-gradient(to bottom, #4f7251 35%, #5f8161 35%); }
  .fixed_menu li.access { margin: 1rem 0 0; }
  .fixed_menu li.access a { background: linear-gradient(to bottom, #808080 38%, #9b9b9b 38%); }
  .fixed_menu li .vertical-text { writing-mode: vertical-rl; text-orientation: upright; } }
.footer { text-align: center; padding: 2rem 0 4.6rem; color: #fff; }
.footer .copy { display: block; padding: 1.8rem 1rem; font-size: 1.2rem; }
.footer .bnr_link { margin: 0 1rem 4rem; }
.footer .bnr_link li ~ li { margin: 1rem auto 0; }
.footer ul:not(.bnr_link) { display: none; }

@media screen and (min-width: 48em), print { .footer { padding: 7rem 0 0; }
  .footer .bnr_link { margin: 0 auto 5rem; width: 84.3rem; display: -webkit-flex; display: flex; -webkit-justify-content: space-between; justify-content: space-between; -webkit-align-items: center; align-items: center; }
  .footer .bnr_link li { margin: 0; }
  .footer .bnr_link li ~ li { margin: 0; }
  .footer ul:not(.bnr_link) { display: block; text-align: center; margin: 0 auto 1.4rem; }
  .footer ul:not(.bnr_link) li { display: inline-block; font-size: 1.4rem; }
  .footer ul:not(.bnr_link) li:not(:last-child)::after { content: ":"; margin: 0 1rem; }
  .footer ul:not(.bnr_link) li a { opacity: 1; }
  .footer ul:not(.bnr_link) li a span:not(.opt_text) { display: none; }
  .footer ul:not(.bnr_link) li a:hover { text-decoration: underline; }
  .footer ul:not(.bnr_link) li.treatment { display: none; }
  .footer .copy { margin: 7.8rem auto 0; } }
/* ----------------------------------------------------------------------------------
トップ　_top.scss
---------------------------------------------------------------------------------- */
/* フェードインアニメーション------------------------------------------------------ */
.main .animate { opacity: 0; position: relative; bottom: -6rem; transition: 0.8s; }
.main .animate.fade-in { bottom: 0; opacity: 1; }
.main .animate.delay_01 { transition-delay: 0.2s; }
.main .animate.delay_02 { transition-delay: 0.4s; }
.main .animate.delay_03 { transition-delay: 0.6s; }
.main .animate.delay_04 { transition-delay: 0.8s; }
.main .animate.delay_05 { transition-delay: 1s; }
.main .animate.delay_06 { transition-delay: 1.2s; }
.main .animate > a:hover { opacity: 0.8 !important; }
.main .tre_menu .animate.fade-in:nth-child(3n + 1) { transition-delay: 0.2s; }
.main .tre_menu .animate.fade-in:nth-child(3n-1) { transition-delay: 0.4s; }
.main .tre_menu .animate.fade-in:nth-child(3n) { transition-delay: 0.6s; }
@media screen and (min-width: 48em), print { .main .animate { opacity: 0; position: relative; bottom: -6rem; transition: 0.8s; }
  .main .animate.fade-in { bottom: 0; opacity: 1; }
  .main .animate.delay_01 { transition-delay: 0.2s; }
  .main .animate.delay_02 { transition-delay: 0.4s; }
  .main .animate.delay_03 { transition-delay: 0.6s; }
  .main .animate.delay_04 { transition-delay: 0.8s; }
  .main .animate.delay_05 { transition-delay: 1s; }
  .main .animate.delay_06 { transition-delay: 1.2s; }
  .main .animate > a:hover { opacity: 0.8 !important; }
  .main .tre_menu .animate.fade-in:nth-child(5n + 1) { transition-delay: 0.2s; }
  .main .tre_menu .animate.fade-in:nth-child(5n + 2) { transition-delay: 0.4s; }
  .main .tre_menu .animate.fade-in:nth-child(5n + 3) { transition-delay: 0.6s; }
  .main .tre_menu .animate.fade-in:nth-child(5n + 4) { transition-delay: 0.8s; }
  .main .tre_menu .animate.fade-in:nth-child(5n + 5) { transition-delay: 1s; } }

/* キービジュアル -------------------------------------- */
#keyvsl { margin: 1rem 0rem 3rem; max-width: 100%; height: 20rem; padding: 0; background: url(../img/index_keyvsl01.jpg) no-repeat center center/cover; }
#keyvsl .wrap { height: 100%; width: 100%; padding: 0 0 2rem; position: relative; }
#keyvsl .wrap .kv_txt { color: #4f7251; text-align: center; font-family: "Shippori Mincho", serif; font-size: 2rem; position: absolute; bottom: -5.4rem; right: 0; left: 0; margin: auto; }

@media screen and (min-width: 48em), print { #keyvsl { margin: 0 auto 0; height: 55.6rem; padding: 0; background: url(../img/index_keyvsl01.jpg) no-repeat center center/auto auto; }
  #keyvsl .wrap { width: 1100px; margin: 0 auto; padding: 0 4rem; }
  #keyvsl .wrap .kv_txt { height: auto; -ms-writing-mode: tb-rl; writing-mode: vertical-rl; letter-spacing: 0.2rem; line-height: 1.6; font-size: 3.4rem; bottom: -2.4rem; } }
/* お知らせ -------------------------------------- */
.info { padding: 4rem 0 2rem; }
.info dl { margin: 0; line-height: 1.2; padding: 0 0.4rem 0 0.2rem; max-height: 30rem; overflow-y: scroll; }
.info dl::-webkit-scrollbar { width: 0.4rem; border-radius: 5px; background: #dcdcdc; }
.info dl::-webkit-scrollbar-thumb { height: 2rem; border-radius: 5px; background: #b8c994; }
.info dl dt { margin-bottom: 0.4rem; font-size: 120%; color: #4f7251; }
.info dl dd { padding: 0.4rem 0 1rem; margin: 0 0 1.8rem; border-bottom: 1px dotted #707070; }
.info dl dd p { margin: 0; }
.info dl dd a { font-family: "Shippori Mincho", serif; color: #4f7251; margin: 0.2rem 0 0; }

@media screen and (min-width: 48em), print { .info { padding: 7rem 0 2rem; }
  .info .wrap { display: -webkit-flex; display: flex; -webkit-justify-content: flex-start; justify-content: flex-start; -webkit-align-items: flex-start; align-items: flex-start; }
  .info .wrap .tit_02 { width: 25%; margin: 4.2rem 0 2rem; }
  .info .wrap dl { width: 75%; min-height: 34.2rem; max-height: 34.2rem; padding: 0 5.3rem 0 0; }
  .info .wrap dl dt { font-size: 1.8rem; margin: 0 0 1rem; }
  .info .wrap dl dd { margin: 0 0 2.2rem; padding: 0 0 2.2rem; } }
/* バナープロケアセンター -------------------------------------- */
.bnr_area { padding: 2rem 0 2rem; }
.bnr_area .bnr { text-align: center; }

.bnr_area { padding: 8rem 0 2rem; }

/* 特長 -------------------------------------- */
.feature { padding: 2rem 0 4rem; }
.feature ul li { margin: 0 0 2rem; }
.feature ul li a { display: block; text-decoration: none !important; padding: 0 0 3rem; position: relative; }
.feature ul li a::after { content: "\e811"; font-family: "fontello"; position: absolute; bottom: 0; right: 0; font-size: 4rem; line-height: 1; }
.feature ul li a p { margin: 0.6rem 0 0; line-height: 1.2; }
.feature ul li a p.tit { font-family: "Shippori Mincho", serif; color: #4f7251; font-size: 1.8rem; line-height: 1.4; margin: 0 0 0.2rem; position: relative; z-index: 1; }
.feature ul li a p.tit::before { content: ""; width: 2rem; height: 2rem; display: block; position: absolute; left: -0.4rem; top: -0.2rem; z-index: -1; background: #e4efe5; }
.feature .price { display: block; margin: 0 auto; text-align: center; }
.feature .price a { text-decoration: none; display: inline-block; padding: 0.6rem 4rem; font-size: 1.6rem; letter-spacing: 0.2rem; border-top: 1px solid #bcc8bc; border-bottom: 1px solid #bcc8bc; }
.feature .price a::after { content: "\e811"; font-family: "fontello"; margin-left: 0.2rem; font-size: 3rem; display: inline-block; vertical-align: sub; line-height: 0.1; }

@media screen and (min-width: 48em), print { .feature { padding: 13rem 0 13rem; }
  .feature ul { display: -webkit-flex; display: flex; -webkit-justify-content: space-between; justify-content: space-between; -webkit-align-items: flex-start; align-items: flex-start; -webkit-flex-wrap: wrap; flex-wrap: wrap; }
  .feature ul li { margin: 0 0 4.4rem; }
  .feature ul li a { min-height: 28.8rem; }
  .feature ul li a::after { bottom: -0.6rem; right: auto; left: 0; font-size: 5.2rem; }
  .feature ul li a p { font-size: 1.6rem; letter-spacing: 0.2rem; margin: 2.8rem 0 0; }
  .feature ul li a p.tit { font-size: 2.6rem; max-height: fit-content; text-align: right; margin: 0; padding: 0; letter-spacing: 0.2rem; position: absolute; right: 2.7rem; top: 3rem; -ms-writing-mode: tb-rl; writing-mode: vertical-rl; }
  .feature ul li a p.tit::before { width: 5rem; height: 5rem; background: #fff; top: -1rem; left: auto; right: 0; }
  .feature .price { margin: 11.6rem auto 0; }
  .feature .price a { font-size: 2.4rem; padding: 2rem 8.3rem; }
  .feature .price a::after { margin-left: 1.2rem; font-size: 4.8rem; } }
/* アクセス -------------------------------------- */
.access_column { background: url("../img/index_accessColumn_bg.jpg") no-repeat center/auto auto; /*  background-attachment: fixed;*/ padding: 2rem 0 4rem; }
.access_column .tit_02::before { background: #fff; }
.access_column .img a { margin: 0.2rem 0 0; display: inline-block; text-decoration: none !important; }
.access_column ul ~ ul { margin: 1rem 0 2rem; }

@media screen and (min-width: 48em), print { .access_column { background: url("../img/index_accessColumn_bg.jpg") no-repeat center/auto auto; /*      background-attachment: fixed;*/ padding: 9.6rem 0 12.4rem; }
  .access_column .wrap { display: -webkit-flex; display: flex; -webkit-justify-content: space-between; justify-content: space-between; -webkit-align-items: flex-start; align-items: flex-start; position: relative; }
  .access_column .wrap .tit_02 { width: 20.8rem; }
  .access_column .wrap .tit_02::before { height: 23rem; top: 56%; }
  .access_column .wrap .img { margin: 2.2rem 0 0; display: inline-block; text-align: right; }
  .access_column .wrap .img img { display: block; max-width: 62.8rem; }
  .access_column .wrap .img a { margin: 0.7rem 0 0; }
  .access_column .wrap > div:not(.img) { position: absolute; left: 0; top: 28rem; } }
/* 診療スケジュール -------------------------------------- */
.schedule_column { padding: 2rem 0 2rem; }
.schedule_column .wrap { text-align: center; }
.schedule_column .wrap .tit_02 { margin: 0 0 0.8rem; -webkit-writing-mode: horizontal-tb; -ms-writing-mode: lr-tb; writing-mode: horizontal-tb; display: inline-block; }
.schedule_column .wrap .tit_02::before { width: 3rem; height: 3rem; top: 1.2rem; left: -0.6rem; }
.schedule_column .wrap section { text-align: left; }
.schedule_column .wrap section .tit_03_top { font-family: "Shippori Mincho", serif; color: #4f7251; font-size: 1.8rem; }
.schedule_column .wrap section .tit_03_top::before { content: "\e803"; font-family: "fontello"; display: inline-block; color: #cedfab; margin-right: 0.2rem; }
.schedule_column .wrap section .tbl_time caption .color { color: #9b9b9b; }
.schedule_column .wrap section .tbl_time tr th[scope="col"] { color: #9a9a9a; border-bottom: none; }
.schedule_column .wrap section .tbl_time tr th.time { border-bottom: none; }
.schedule_column .wrap section .tbl_time tr td { border-bottom: none; }
.schedule_column .wrap section .tbl_time tr td.color { color: #9b9b9b; }
.schedule_column .wrap section .tbl_time tr:nth-child(2) th, .schedule_column .wrap section .tbl_time tr:nth-child(2) td { background: #eee; }
.schedule_column .wrap section.clender { margin: 3rem auto 0; }

@media screen and (min-width: 48em), print { .schedule_column { padding: 13rem 0 12rem; }
  .schedule_column .wrap .tit_02 { font-size: 2.6rem; letter-spacing: 0.2rem; margin: 0 0 3.3rem; }
  .schedule_column .wrap .tit_02::before { left: 0.4rem; }
  .schedule_column .wrap .flex { display: -webkit-flex; display: flex; -webkit-justify-content: space-between; justify-content: space-between; -webkit-align-items: flex-start; align-items: flex-start; }
  .schedule_column .wrap .flex section.schedule { width: 33rem; }
  .schedule_column .wrap .flex section.clender { width: 68.6rem; margin: 0; }
  .schedule_column .wrap .flex section .tit_03_top { font-size: 1.8rem; margin: 0 0 2rem; }
  .schedule_column .wrap .flex section .tbl_time tr th.time { width: 35%; padding: 0.6rem 0.2rem 0.6rem 0; } }
/* 診療内容 -------------------------------------- */
.tre_menu { padding: 2rem 0 2rem; background: #efefef; }
.tre_menu .tit_02::before { background: #fff; }
.tre_menu ul { display: -webkit-flex; display: flex; -webkit-justify-content: space-between; justify-content: space-between; -webkit-flex-wrap: wrap; flex-wrap: wrap; gap: 2.4rem 0; }
.tre_menu ul li { width: 33%; margin: 0; display: -webkit-flex; display: flex; -webkit-justify-content: flex-start; justify-content: flex-start; -webkit-align-items: center; align-items: center; -webkit-flex-direction: column; flex-direction: column; }
.tre_menu ul li a { display: block; width: 100%; text-decoration: none !important; text-align: center; font-size: 1.2rem; position: relative; padding-top: 6.2rem; white-space: nowrap; }
.tre_menu ul li a::before { content: "\e810"; font-family: "fontello"; margin-right: 0.2rem; color: #8c9c8c; }
.tre_menu ul li a::after { content: ""; font-family: "fontello"; display: -webkit-flex; display: flex; -webkit-justify-content: center; justify-content: center; -webkit-align-items: center; align-items: center; font-size: 2.4rem; color: #8c9c8c; margin: 0 auto 0.2rem; width: 6rem; height: 6rem; background: #fff; border-radius: 50%; position: absolute; top: 0; left: 0; right: 0; }
.tre_menu ul li a.dental::after { content: "\e805"; }
.tre_menu ul li a.periodontal_disease::after { content: "\e806"; }
.tre_menu ul li a.preventive_dentistry::after { content: "\e807"; }
.tre_menu ul li a.dentures::after { content: "\e808"; }
.tre_menu ul li a.implant::after { content: "\e809"; }
.tre_menu ul li a.aesthetic_dentistry::after { content: "\e80f"; }
.tre_menu ul li a.whitening::after { content: "\e80b"; }
.tre_menu ul li a.pediatric_dentistry::after { content: "\e813"; }
.tre_menu ul li a.orthodontics::after { content: "\e80d"; }
.tre_menu ul li a.homevisit_medical_care::after { content: "\e80e"; }
.tre_menu ul li a.teeth_grinding { word-break: auto-phrase; white-space: normal; }
.tre_menu ul li a.teeth_grinding::after { content: "\e800"; }
.tre_menu ul li a .opt_text { display: none; }

@media screen and (min-width: 48em), print { .tre_menu { padding: 10rem 0 7rem; }
  .tre_menu .wrap { display: -webkit-flex; display: flex; -webkit-justify-content: flex-start; justify-content: flex-start; -webkit-align-items: center; align-items: center; }
  .tre_menu .wrap .tit_02 { margin-bottom: 10rem !important; margin-right: 13.2rem; }
  .tre_menu .wrap .tit_02::before { background: #fff; }
  .tre_menu .wrap ul { display: -webkit-flex; display: flex; -webkit-justify-content: flex-start; justify-content: flex-start; -webkit-flex-wrap: wrap; flex-wrap: wrap; gap: 4.8rem 3.9rem; }
  .tre_menu .wrap ul li { width: 13.1rem; height: 100%; display: -webkit-flex; display: flex; -webkit-justify-content: center; justify-content: center; -webkit-align-items: center; align-items: center; -webkit-flex-direction: column; flex-direction: column; }
  .tre_menu .wrap ul li a { display: block; width: 100%; text-decoration: none !important; text-align: center; position: relative; letter-spacing: 0.2rem; padding-top: 14rem; font-size: 1.6rem; }
  .tre_menu .wrap ul li a::before { font-size: 1.2rem; vertical-align: middle; margin-right: 0.4rem; }
  .tre_menu .wrap ul li a::after { display: -webkit-flex; display: flex; -webkit-justify-content: center; justify-content: center; -webkit-align-items: center; align-items: center; font-size: 5rem; margin: 0 auto 0.2rem; width: 13rem; height: 13rem; background: #fff; border-radius: 50%; } }
/* バナー -------------------------------------- */
.bnr_area__02 { padding: 3rem 0 3rem; }
.bnr_area__02 li { margin: 0 auto 2rem; }
.bnr_area__02 li a { margin: 0 3rem; padding: 1.5rem 0; border: 4px solid #e6e6e6; min-height: 7.8rem; display: -webkit-flex; display: flex; -webkit-justify-content: center; justify-content: center; -webkit-align-items: center; align-items: center; font-family: "游明朝", YuMincho, "Yu Mincho", "Hiragino Mincho ProN", "serif"; color: #808080; text-decoration: none !important; }
.bnr_area__02 li a.bnr_book { background: url(../img/index_bnrArea_bnrBook_bg01.jpg) no-repeat center/cover; color: #416b44; font-size: 1.6rem; font-family: "Shippori Mincho", serif; }
.bnr_area__02 li a.bnr_insta::before { content: ""; display: inline-block; width: 3rem; height: 3rem; margin-right: 2rem; background: url("../img/icon_insta.jpg") no-repeat center/contain; }
.bnr_area__02 li a.bnr_insta:hover { opacity: 1 !important; }

@media screen and (min-width: 48em), print { .bnr_area__02 { width: 1100px; margin: 0 auto; padding: 13rem 0; display: -webkit-flex; display: flex; -webkit-justify-content: center; justify-content: center; -webkit-align-items: center; align-items: center; gap: 0 4.8rem; }
  .bnr_area__02 li { width: 28.8rem; margin: 0; }
  .bnr_area__02 li a { width: 100%; min-height: 7.5rem; padding: 1.7rem 0; margin: 0 auto; font-size: 2.2rem; }
  .bnr_area__02 li a.bnr_book { font-size: 2.2rem; }
  .bnr_area__02 li a.bnr_insta::before { width: 3.4rem; height: 3.4rem; margin-right: 2rem; } }
/* ----------------------------------------------------------------------------------
下層　_lower.scss
---------------------------------------------------------------------------------- */
body:not(.index) .main { margin: 0 1rem 6rem; }
@media screen and (min-width: 48em), print { body:not(.index) .main { margin: 0 0 10rem; }
  body:not(.index) .main p { line-height: 2.2; } }

@media screen and (min-width: 48em), print { .cf .img_l, .cf .img_r { max-width: 40%; height: auto; } }
/* スタッフ一覧 */
.staff .anchor_link { margin: 1rem 0 0; display: -webkit-flex; display: flex; -webkit-justify-content: flex-start; justify-content: flex-start; -webkit-align-items: center; align-items: center; -webkit-flex-wrap: wrap; flex-wrap: wrap; }
.staff .anchor_link a { color: #5f8161; }
.staff .anchor_link li { width: 33%; margin: 0 0 1rem; text-align: center; border-right: 2px solid #eee; }
@media screen and (min-width: 48em), print { .staff .anchor_link li { margin: 0 0 1.4rem; width: 20%; } }
.staff .anchor_link li:nth-child(3n) { border-right: none; }
@media screen and (min-width: 48em), print { .staff .anchor_link li:nth-child(3n) { border-right: 2px solid #eee; } }
@media screen and (min-width: 48em), print { .staff .anchor_link li:nth-child(5n) { border-right: none; } }
.staff .tbl_staffTime { width: 100%; table-layout: fixed; caption-side: bottom; border-collapse: collapse; }
.staff .tbl_staffTime caption { text-align: left; padding: 0.2rem 0 0; }
@media screen and (min-width: 48em), print { .staff .tbl_staffTime caption { padding: 0.6rem 0 0; } }
.staff .tbl_staffTime tbody tr th { border: 1px solid #a2b2a2; background: #e1eee2; color: #4b624b; font-weight: normal; padding: 0.6rem 0.2rem; }
@media screen and (min-width: 48em), print { .staff .tbl_staffTime tbody tr th { width: 30%; padding: 1.2rem 0.2rem; } }
.staff .tbl_staffTime tbody tr td { border: 1px solid #a2b2a2; padding: 0.6rem 1rem; }
@media screen and (min-width: 48em), print { .staff .tbl_staffTime tbody tr td { padding: 1.2rem 1rem 1.2rem 2rem; } }
.staff .dl_bio dt { display: block; font-weight: bold; color: #4b624b; }
.staff .dl_bio dd { display: block; margin: 0 0 1.2rem; }
@media screen and (min-width: 48em), print { .staff .dl_bio div { display: -webkit-flex; display: flex; -webkit-justify-content: flex-start; justify-content: flex-start; -webkit-align-items: flex-start; align-items: flex-start; margin: 0 0 1rem; }
  .staff .dl_bio div dt { width: 9rem; }
  .staff .dl_bio div dd { flex: 1; margin: 0; } }
.staff .btn_top a { margin: 1.4rem 0 0; padding: 0.2rem 1rem; border: 1px solid #a2b2a2; }
@media screen and (min-width: 48em), print { .staff .btn_top a { font-size: 1.6rem; padding: 0.4rem 2rem; margin: 2rem 0 0; } }
.staff .btn_top a::after { content: "\e812"; font-family: "fontello"; margin-left: 1.2rem; font-size: 1.2rem; position: relative; bottom: 0.2rem; }
@media screen and (min-width: 48em), print { .staff .btn_top a::after { right: 0; } }

/* クリニック紹介 */
.clinicslide { margin-bottom: 3rem; }
.clinicslide img, .clinicslide p { display: none; }

.sp-layer.sp-black.sp-padding { text-align: center; font-size: 2.4rem; }

.sp-selected-thumbnail { border: 4px solid #000; }

.device { margin: 4rem 0 4rem; }
.device li { margin: 0 0 4rem; text-align: center; }
.device li figure { padding: 0; margin: 0; }
.device li figure img { display: block; margin: 0 auto 0.6rem; max-width: 80%; height: auto; }
.device li figure figcaption { text-align: left; }
.device li figure figcaption .tit { text-align: center; font-weight: bold; font-size: 120%; }

@media screen and (min-width: 48em), print { .device { margin: 8rem 0 6rem; display: -webkit-flex; display: flex; -webkit-justify-content: space-between; justify-content: space-between; -webkit-flex-wrap: wrap; flex-wrap: wrap; }
  .device li { margin: 0 0 10rem; }
  .device li figure { display: -webkit-flex; display: flex; -webkit-justify-content: flex-start; justify-content: flex-start; -webkit-align-items: flex-start; align-items: flex-start; gap: 0 6%; }
  .device li figure img { order: 2; width: 40%; margin: 0; }
  .device li figure > div { order: 2; width: 40%; }
  .device li figure > div img { width: 100%; order: auto; }
  .device li figure figcaption { order: 1; width: 54%; } }
/* 初めての方へ */
.first .btn_dl a { color: #4f7251; border: 1px solid #bcc8bc; }
.first .btn_dl a:hover { background: #c3e57d; }
.first .main .tel { font-size: 1.8rem; color: #69856a; font-weight: bold; }
@media screen and (min-width: 48em), print { .first .main .tel { font-size: 2.4rem; margin-left: 0.6rem; } }

.flow { counter-reset: flow_num; }
.flow dt { counter-increment: flow_num 1; display: -webkit-flex; display: flex; -webkit-justify-content: flex-start; justify-content: flex-start; -webkit-align-items: center; align-items: center; }
.flow dt::before { content: counter(flow_num); margin-right: 0.8rem; color: #fff; background: #69856a; width: 4rem; height: 4rem; display: block; display: -webkit-flex; display: flex; -webkit-justify-content: center; justify-content: center; -webkit-align-items: center; align-items: center; }
.flow dd { margin: 0 0 6rem; position: relative; }
@media screen and (min-width: 48em), print { .flow dd { margin: 0 0 10rem; } }
.flow dd:not(:last-child)::after { display: block; width: 0; height: 0; content: ""; position: absolute; bottom: -5rem; left: 0; right: 0; border-top: 2rem solid #afc77e; border-right: 3rem solid transparent; border-bottom: 1rem solid transparent; border-left: 3rem solid transparent; margin: auto; }

/* 診療時間・アクセス */
.access .main .tbl_time { color: #fff; background: #688569; }
.access .main .tbl_time caption { color: #212121; }
.access .main .tel { font-size: 1.8rem; color: #69856a; font-weight: bold; }
@media screen and (min-width: 48em), print { .access .main .tel { font-size: 2.4rem; margin-left: 0.6rem; } }
.access .main .dl_busAccess dt { padding: 0.2rem 0.6rem 0; font-weight: bold; border-radius: 4px; background: #e1eee2; }
.access .main .dl_busAccess dd { padding: 0.4rem 0 0; margin: 0 0 1.2rem; }
.access .main .dl_busAccess + .txt_c { font-weight: bold; padding: 0.6rem; background: #f2f2f2; font-size: 110%; }
.access .main .dl_carAccess dl dt { padding: 0.2rem 0.6rem 0; font-weight: bold; border-radius: 4px; background: #e1eee2; }
.access .main .dl_carAccess dl dd { margin: 0 0 2rem; }
.access .main .flex_img .imgL figure { margin: 0 0 1rem; }
.access .main .flex_img .imgL figure figcaption { padding: 1rem; margin: 0 0 1rem; border-radius: 7px; background: #f2f2f2; }
.access .main .flex_img .imgL figure img { max-width: 60%; display: block; margin: 0 auto; }

@media screen and (min-width: 48em), print { .access .main .btn_01 { margin: 3rem 0 2rem; text-align: center; }
  .access .main .tbl_time { padding: 2rem; }
  .access .main .tbl_time tr th[scope="col"] { font-size: 1.8rem; }
  .access .main .tbl_time tr th[scope="col"]:first-child { width: 28%; }
  .access .main .tbl_time tr th.time { font-size: 1.8rem; padding: 1.2rem 0; }
  .access .main .tbl_time tr td { font-size: 1.4rem; }
  .access .main .dl_busAccess { display: -webkit-flex; display: flex; -webkit-justify-content: space-between; justify-content: space-between; -webkit-align-items: flex-start; align-items: flex-start; margin: 0 0 4rem; }
  .access .main .dl_busAccess div { width: 48%; }
  .access .main .dl_busAccess div dt { padding: 0.8rem 2rem; margin: 0 0 1.8rem; font-size: 1.8rem; }
  .access .main .dl_busAccess div dd { margin: 0; }
  .access .main .dl_carAccess { display: -webkit-flex; display: flex; -webkit-justify-content: space-between; justify-content: space-between; -webkit-align-items: flex-start; align-items: flex-start; margin: 0 0 4rem; }
  .access .main .dl_carAccess dl { width: 100%; margin: 0 0 1.2rem; }
  .access .main .dl_carAccess dl dt { padding: 0.8rem 2rem; margin: 0 0 1.8rem; font-size: 1.8rem; }
  .access .main .flex_img { display: -webkit-flex; display: flex; -webkit-justify-content: space-between; justify-content: space-between; -webkit-align-items: flex-start; align-items: flex-start; }
  .access .main .flex_img .imgL { width: 37%; padding: 2rem 0 0; }
  .access .main .flex_img .imgL figure figcaption { margin: 0 0 2rem; }
  .access .main .flex_img .imgL figure img { max-width: 80%; }
  .access .main .flex_img .imgR { width: 60%; } }
/* 料金表 */
.price .lst_link li { margin: 0 0 0.6rem; }
.price .lst_link li a { display: block; text-decoration: none !important; position: relative; padding: 0.6rem; border: 1px solid #bcc8bc; }
.price .lst_link li a::after { content: "\e811"; font-family: "fontello"; font-size: 2.2rem; position: absolute; top: 50%; right: 0.6rem; top: 50%; transform: translateY(-50%); -webkit-transform: translateY(-50%); -ms-transform: translateY(-50%); }
.price .lst_link li a:hover { background: #8dc21f; color: #fff; }

@media screen and (min-width: 48em), print { .price .lst_link { display: -webkit-flex; display: flex; -webkit-justify-content: flex-start; justify-content: flex-start; -webkit-align-items: center; align-items: center; }
  .price .lst_link li { width: 32%; margin-right: 1%; }
  .price .lst_link li a { padding: 2rem 2rem; }
  .price .lst_link li a::after { right: 1.8rem; } }
/* 当院の感染症予防対策 */
@media screen and (min-width: 48em), print { .infection .main .img_r { max-width: 37%; } }
/* 一般歯科 */
.dental .main .img_l { display: block; max-width: 80%; margin: 0 auto 2rem; }
@media screen and (min-width: 48em), print { .dental .main .img_l { max-width: 25%; margin: 0 2rem 0 0; } }

/* インプラント */
.implant .main .tit { font-weight: bold; margin: 2rem 0 0.4rem; padding: 0.6rem 0.8rem 0.4rem; background: #e1eee2; }
.implant .main + p:not(.tit) { margin: 0; }
.implant .main .img_flex { margin: 1rem 0; text-align: center; }
.implant .main .img_flex img { max-width: 80%; }
.implant .main .img_flex img ~ img { margin: 2rem auto 0; }

@media screen and (min-width: 48em), print { .implant .main .tit { padding: 1.2rem 2rem 1rem; margin: 3rem 0 1rem; }
  .implant .main .img_flex { margin: 2rem 0 2rem; display: -webkit-flex; display: flex; -webkit-justify-content: space-between; justify-content: space-between; -webkit-align-items: center; align-items: center; width: 50%; }
  .implant .main .img_flex img { width: 47%; }
  .implant .main .img_flex img ~ img { margin: 0; } }
/* 矯正歯科 */
.orthodontics .main .img_c { max-width: 50%; }
@media screen and (min-width: 48em), print { .orthodontics .main .img_c { max-width: 25%; margin: 0 auto 2rem; } }
@media screen and (min-width: 48em), print { .orthodontics .main .img_l { max-width: 30%; } }
.orthodontics .main .img_flex figure, .orthodontics .main .img_flex div { margin: 0 0 1.2rem; padding: 0; }
.orthodontics .main .img_flex figure img, .orthodontics .main .img_flex div img { display: block; margin: 0 auto; max-width: 80%; }
.orthodontics .main .img_flex figure figcaption, .orthodontics .main .img_flex div figcaption { margin: 0.4rem 0 0; text-align: center; font-weight: bold; font-size: 1.2rem; }
@media screen and (min-width: 48em), print { .orthodontics .main .img_flex { display: -webkit-flex; display: flex; -webkit-justify-content: flex-start; justify-content: flex-start; -webkit-align-items: flex-start; align-items: flex-start; }
  .orthodontics .main .img_flex figure, .orthodontics .main .img_flex div { width: 30%; margin-right: 2rem; }
  .orthodontics .main .img_flex figure img, .orthodontics .main .img_flex div img { max-width: 100%; }
  .orthodontics .main .img_flex figure figcaption, .orthodontics .main .img_flex div figcaption { font-size: 1.4rem; } }
.orthodontics .main .img_chart { max-width: 100%; display: block; }
@media screen and (min-width: 48em), print { .orthodontics .main .img_chart { max-width: 74%; } }

/* 訪問診療 */
@media screen and (min-width: 48em), print { .homevisit_medical_care .main img { max-width: 40%; } }
@media screen and (min-width: 48em), print { .homevisit_medical_care .main .img_c { max-width: 80%; } }
@media screen and (min-width: 48em), print { .homevisit_medical_care .main .img_l { max-width: 40%; } }
.homevisit_medical_care .main .img_flex img { display: block; margin: 0 auto 1.2rem; max-width: 80%; }
@media screen and (min-width: 48em), print { .homevisit_medical_care .main .img_flex { display: -webkit-flex; display: flex; -webkit-justify-content: flex-start; justify-content: flex-start; -webkit-align-items: flex-start; align-items: flex-start; }
  .homevisit_medical_care .main .img_flex img { max-width: 30%; margin: 0 2rem 0 0; } }
.homevisit_medical_care .main .box_info img { max-width: 50%; margin: 0 auto 0.3rem; display: block; }
.homevisit_medical_care .main .box_info .bold { text-align: center; padding: 0.2rem 1.4rem; border-radius: 2px; background: #efefef; font-size: 2rem; }
@media screen and (min-width: 48em), print { .homevisit_medical_care .main .box_info { display: -webkit-flex; display: flex; -webkit-justify-content: flex-start; justify-content: flex-start; -webkit-align-items: flex-end; align-items: flex-end; }
  .homevisit_medical_care .main .box_info img { width: 18%; }
  .homevisit_medical_care .main .box_info > div { width: 76%; }
  .homevisit_medical_care .main .box_info > div .bold { margin: 0; padding: 0.4rem 8rem; display: inline-block !important; } }

/* 予防歯科 */
@media screen and (min-width: 48em), print { .preventive_dentistry .bnr_area { padding: 2rem 0 4rem; } }
/* プロケアセンター */
.procarecenter .main .loop_slider { width: 100vw; position: relative; left: 50%; transform: translateX(-50%); -webkit-transform: translateX(-50%); -ms-transform: translateX(-50%); }

@media screen and (min-width: 48em), print { .procarecenter .overflow { overflow-x: hidden; }
  .procarecenter .main .loop_slider { margin: 6rem 0 4rem; min-width: 2000px; } }
/* 感染症防止対策 */
.infection .main .flex_r img { margin: 0 0 0.6rem; }

@media screen and (min-width: 48em), print { .infection .main .flex_r { display: -webkit-flex; display: flex; -webkit-justify-content: flex-start; justify-content: flex-start; -webkit-align-items: center; align-items: center; max-width: 100%; gap: 0 4rem; margin: 4rem 0 4rem; }
  .infection .main .flex_r img { max-width: 37%; } }

/*# sourceMappingURL=style.css.map */
