@charset "utf-8";
/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
common
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
/* ----------------------------------------------------
element base setting (common)
---------------------------------------------------- */
body { color: #333333;  line-height: 1.5;  background: #fff;}	
a {  color: #1d2f82;  text-decoration: none;}
a:hover { text-decoration: underline;}
.clickable a, .clickable a:hover {  color: #333;}
img {width: 100%; height: auto;}
.flex {display: flex; display: -webkit-flex; justify-content:space-between; flex-wrap: wrap;}
.inner {width: 90%; max-width: 1200px; margin-inline: auto;}
.inner--m{width: 90%; max-width:1030px; margin-inline: auto;}
.inner--s{width: 90%; max-width: 830px; margin-inline: auto;}

:root {
--ff-en: "Jost", sans-serif;
--ff-num: "Caveat", cursive;;
--c-green:#65b300;
--c-red:#e14000;
--bg-grad:linear-gradient(90deg,rgba(255, 247, 123, 1) 0%, rgba(54, 178, 72, 1) 50%, rgba(42, 120, 56, 1) 100%);
}


/* ----------------------------------------------------
calendar (common)
---------------------------------------------------- */
div.cal_wrapper table.cal tr th div.cal_ui input {
  /* next.prev btn */
  border: 1px solid #fff;
  background-color: #fff;
  color: var(--c-green) !important;
}
div.cal_wrapper table.cal tr.headline td {
  /* 曜日 */
  border-top: 1px solid #fff;
  border-bottom: 1px solid #fff !important;
}
div.cal_wrapper table.cal tr td {
  border: 1px solid transparent;
}
/* 午後休診 */
div.cal_wrapper table.cal tr td div.Sat, div.cal_wrapper table.cal tr td div.Thu {
  background: #9cdcef;
  color: #0053b9;
}
/* Sun;日曜*/
div.cal_wrapper table.cal tr td div.Sun {
  background: #f1c1d4;
  color: #d72542;
}
/* Holyday;祝日*/
div.cal_wrapper table.cal tr td div.Holyday {
  background: #f1c1d4;
  color: #d72542;
}
/* PMOff；午後休診 */
div.cal_wrapper table.cal tr td div.PMOff {
  background: #9cdcef;
  color: #0053b9;
}
/* dayOff;祝日*/
div.cal_wrapper table.cal tr td div.dayOff {
  background: #f1c1d4;
  color: #d72542;
}
/* otherDay;その他 */
div.cal_wrapper table.cal tr td div.otherDay {
  background: #dfec70;
  color: #114700;
}
/* weekday;一日診療　*/
div.cal_wrapper table.cal tr td div.weekday {
  background: transparent;
  color: #333;
}
/* Today;当日 */
div.cal_wrapper table.cal tr td div.Today {
  font-weight: bold;
}
div.cal_wrapper table.cal tr td div.pointer:hover {
  background-color: #AAA;
  color: #fff;
}
.cal-off {
  color: #f1c1d4;
}
.cal-halfOff {
  color: #9cdcef;
}
.cal-other {
  color: #dfec70;
}

/* ----------------------------------------------------
header
---------------------------------------------------- */
#header {position: fixed; left: 0; top: 0; width: 100%; padding: 0 min(3.3vw, 40px); display: flex; display: -webkit-flex; justify-content: space-between; align-items: center; height: min(8.3vw,100px); z-index: 100; transition: 0.3s all ease-in-out;}
#hd-logo {width: min(25.83vw,310px);}

#header.fixed {background: rgba(255,255,255,0.7);}

#navGlobal {display: flex; display: -webkit-flex; column-gap:min(3.3vw, 40px); font-weight: 600;}
#navGlobal li a {color: #333;}
#navGlobal li a.current {color: var(--c-green);}

@media (max-width: 767px) {
 #header.fixed {background: rgba(255,255,255,0.9);}
 #header {padding: min(2vw,30px) 0 0; display: block; height:auto; position:sticky; left: 0; top: 0;}
 #hd-logo {width: min(50vw,310px); margin: 0 auto min(2vw,30px); transform: 0.3s all ease-in-out;}
 #header.fixed #hd-logo {display: none;}
 #grandMenu {position: sticky; left: 0; top: 0; width: 100%;}
 #navGlobal {column-gap:none; width: 100%; padding: 0 4% min(2vw,30px);}
 #navGlobal li {flex-grow: 1;}
}


/* ----------------------------------------------------
CTA
---------------------------------------------------- */
.cta {background: var(--bg-grad); text-align: center; padding: min(3vw,36px) 5% min(5.83vw,70px); color: #fff;}
.cta a {color: #fff;}
.cta h2 {font-weight: 700; font-size: min(3.17vw,3.8rem); letter-spacing: 0.1rem; line-height: 1.4; margin-bottom: min(3.3vw, 40px);}
.cta h2 span {font-size: min(1.66vw,2rem); position: relative; padding: 0 1em;}
.cta h2 span::before,.cta h2 span::after {content: ""; width:3px; height: 80%; background: #fff; position: absolute; bottom: 0;}
.cta h2 span::before {left: 0; transform:rotate(-40deg);}
.cta h2 span::after {right: 0; transform:rotate(40deg);}
.cta .cta__contact {display: flex; display: -webkit-flex; justify-content: center; align-items: center; column-gap: min(9.17vw,110px); position: relative; width: 90%; max-width: 820px; margin: 0 auto;}
.cta .cta__contact::before {content: ""; width: 1px; height: 100%; background: #fff; position: absolute; left: 50%; top: 0;}
.cta .cta__tel, .cta .cta__web {flex: 1;}
.cta .cta__tel p {margin: 0; font-weight: 600; text-shadow: 1px 1px 3px rgba(0,0,0,0.4);}
.cta .cta__tel p.cta__tel__num {font-size: min(3vw,3.6rem); margin-bottom: min(0.8vw,10px); line-height: 1;}
.cta .cta__tel p.cta__tel__num span {position: relative;}
.cta .cta__tel p.cta__tel__num span::before {content: ""; background: url("../../img/ic-cta_tel.png") center center / cover no-repeat; width: min(2.42vw,29px); aspect-ratio: 29/31; position: absolute; left: 0; top: 50%; transform: translate(-140%, -36%);}

.cta .cta__web {background: #fff; border-radius: min(0.6vw,8px);}
.cta .cta__web a {display: flex; display: -webkit-flex; justify-content: center; align-items: center; height: 100%; min-height: min(7.5vw, 90px); background: #ffb400; border-radius: min(0.6vw,8px); font-size: min(2vw,2.4rem); font-weight: 600;text-shadow: 1px 1px 3px rgba(0,0,0,0.4); letter-spacing: 0.1rem; border-bottom: 3px solid #e98f2e; box-shadow: 3px 3px 8px 0 rgba(0,0,0,0.3); }
.cta .cta__web a span{position: relative; padding-left: 0.5em;}
.cta .cta__web a span::before {content: ""; background: url("../../img/ic-cta_web.png") center center / cover no-repeat; width: min(1.92vw,23px); aspect-ratio: 23/39; position: absolute; left: 0; top: 50%; transform: translate(-170%,-50%);}

@media (max-width: 767px) {
 .cta {padding: min(5vw,36px) 5%  min(8vw,45px);}  
 .cta h2 {font-size: min(6vw,3.8rem); margin-bottom: min(5vw, 40px);}
 .cta h2 span {font-size: min(3.8vw,2rem);}
 .cta h2 span::before,.cta h2 span::after {width:2px;}

 .cta .cta__contact {display: block;}
 .cta .cta__contact::before {content: none;}
 .cta .cta__tel, .cta .cta__web {width: 100%;}
 .cta .cta__tel p.cta__tel__num {font-size: min(7.5vw,3.6rem); margin-bottom: min(2vw,10px);}
 .cta .cta__tel p.cta__tel__num span::before {width: min(6vw,29px);}
 .cta .cta__web {margin-top: 4vw; border-radius: min(3vw,15px);}
 .cta .cta__web a {min-height:inherit; height: min(18vw,90px);border-radius: min(3vw,15px); font-size: min(6vw,2.4rem);}
 .cta .cta__web a span::before {width: min(5vw,23px);}
}

/* ----------------------------------------------------
contents
---------------------------------------------------- */
.ttlCommon {text-align: center; font-size: min(3vw, 3.6rem); letter-spacing: 0.1rem; width: 90%; margin-inline: auto;}
.ttlCommon span {display: block; font-weight: 700; font-family: var(--ff-en); color: var(--c-green); font-size: min(1.5vw, 1.8rem); letter-spacing: normal;}

@media (max-width: 767px) {
 .ttlCommon {font-size: min(6vw, 3.6rem);}
 .ttlCommon span {font-size: min(4.5vw, 1.8rem);}
}

#visual {height: min(56.67vw,680px); background: #eee; overflow: hidden; position: relative;}
#visual img {width: 100%; height: 100%; object-fit: cover;}
#visual .vis__txt {position: absolute; left: min(6vw,140px); top: 50%; transform: translateY(-50%);}
#visual .vis__txt h2 {font-size: min(4.16vw,50px); line-height: 1.3; margin-bottom: min(4.16vw,50px); padding-left: min(2.5vw, 30px); border-left: 5px solid #2a7838;}
#visual .vis__txt h2 span {font-size: min(3.83vw,46px); color: #2a7838;}
#visual .vis__txt p {margin: 0; font-size: min(2vw, 2.4rem); line-height: 2.5;}
#visual .vis__txt p span {background: #fff; padding: min(0.83vw, 10px) min(1.66vw, 20px);}

@media (max-width: 767px) {
 #visual {height: min(60vw,680px); }
 #visual .vis__txt {left: min(5vw,140px);}
 #visual .vis__txt h2 {font-size: min(7vw,50px); margin-bottom: min(5vw,50px); padding-left: min(3vw, 30px); }
 #visual .vis__txt h2 span {font-size: min(6vw,46px);}
 #visual .vis__txt p {font-size: min(4vw, 2.4rem);}
 #visual .vis__txt p span {padding: min(1.5vw, 10px) min(3vw, 20px);}
}

#navFeature {text-align: center; padding: min(6.6vw,80px) 0;}
#navFeature ul {margin-bottom: 0; column-gap: min(1.25vw,15px);}
#navFeature li {flex: 1;}
#navFeature li p {margin-bottom: 0; text-align: center;}
#navFeature li p.navFt__img img {height: min(11.92vw, 143px); width: auto;}
#navFeature li p.navFt__txt {margin-top: min(1.25vw,15px); font-size: min(1.3vw,1.6rem);}
#navFeature li p.navFt__txt span{font-weight: 600; color: #b53007;}

@media (max-width: 767px) {
 #navFeature { padding: min(5vw,80px) 0 min(8vw,80px);}
 #navFeature ul {column-gap: min(3vw,15px); justify-content: center; flex-wrap: wrap; }
 #navFeature li {flex:auto; width: 30%; margin-top: 3vw;}
 #navFeature li p.navFt__img img {height: min(18vw, 143px);}
 #navFeature li p.navFt__txt {margin-top: min(3vw,15px); font-size: min(3.2vw,1.6rem);}
}


#intro {padding: min(7.5vw,90px) 0 min(10vw, 120px);}
#intro h2 {text-align: center; font-size: min(2.5vw,3rem); margin-bottom: min(1.66vw, 20px);}
#intro h2.intro__title { margin-bottom: min(7.5vw,90px);}
#intro .intro__check {display: flex; display: -webkit-flex; justify-content: space-between;}
#intro .intro__list {margin: 0; font-size: min(1.66vw,2rem);}
#intro .intro__list li {margin-bottom: min(1.25vw, 15px); position: relative; padding-left: 2em;}
#intro .intro__list li::before {content: ""; background: url("../../img/ic-check-01.png") center center / cover no-repeat; width: 25px; aspect-ratio: 25/20; position: absolute; left: 0; bottom: 0; transform:translateY(-15%);}
#intro .intro__check p {margin: 0; width: 31%; max-width: 256px; }
#intro .intro__catch {margin: min(5vw,60px) auto min(6.6vw,80px); text-align: center; font-size: min(2.5vw,3rem);}
#intro .intro__catch em {font-weight: 600; color: var(--c-red); font-size: min(3.3vw, 4rem);}
#intro .intro__catch span {position: relative; padding-bottom: min(2vw, 24px); border-bottom: 1px solid #000;}
#intro .intro__catch span::before {content: ""; width: 100%; height: 1px; background: #000; position: absolute; left: 0; bottom: 5px;}
#intro h3 {background: var(--c-green); color: #fff; text-align: center; padding: min(1.66vw,20px); font-weight: 600; font-size: min(2.33vw,2.8rem); position: relative; margin-bottom: min(3vw,36px);}
#intro h3::before{content: ""; display: inline-block; width: min(3vw,36px); height: min(1.5vw,18px); background: var(--c-green); clip-path: polygon(0 0, 100% 0%, 50% 100%); position: absolute; left: 50%; bottom: 0; transform: translate(-50%, 90%);}
#intro h4 {font-weight: 600; color: var(--c-green); font-size: min(1.66vw,2rem); margin-bottom: min(1.66vw,20px);}
#intro .tblCause {width: 100%; text-align: center; font-size: min(1.16vw, 1.4rem);}
#intro .tblCause thead tr {background: #d0e7b2; border-top: 1px solid var(--c-green); border-bottom: 1px solid var(--c-green);}
#intro .tblCause thead th {color: var(--c-green); padding: min(1vw, 12px); }
#intro .tblCause tbody tr {border-bottom: 1px solid var(--c-green);}
#intro .tblCause tbody th {font-weight: normal; padding: min(1vw, 12px); }
#intro .tblCause tbody td { padding: min(1vw, 12px); }
#intro .tblCause tbody td.red {color: var(--c-red); font-weight: 600;}
#intro .flxGraph {display: flex; display: -webkit-flex; justify-content: space-between; column-gap: min(0.83vw,10px); margin: min(3.3vw,40px) auto 0;}
#intro .flxG__cont {flex: 1; text-align: center; padding: min(2.5vw,30px);}
#intro .flxG__cont h5 {text-align: center; font-weight: 600; font-size: min(1.66vw, 20px);}
#intro .flxG__m {background: #d5ebf3; color: #238db0;}
#intro .flxG__f {background: #ffede5; color: #eb628f;}
#intro .flxG__img {width: min(90%, 280px); margin: min(1.66vw,20px) auto 0;}
#intro .flxGraph__txt { margin: min(0.83vw, 10px) auto min(5vw,60px); text-align: right; font-size: min(1.14vw, 1.4rem);}
#intro .read {text-align: center; font-size: min(1.5vw, 1.8rem); line-height: 1.8; margin: 0;}

@media (max-width: 767px) {
 #intro {padding: min(10vw,90px) 0 min(10vw, 120px);}
 #intro h2 {font-size: min(5.4vw,3rem); line-height: 1.5; margin-bottom: min(6vw, 20px);}
 #intro h2.intro__title { margin-bottom: min(8vw,90px);}
 #intro .intro__check {display: block;}
 #intro .intro__list {font-size: min(4.2vw,2rem);}
 #intro .intro__list li {margin-bottom: min(4vw, 15px);  line-height: 1.4; padding-left: 1.6em;}
 #intro .intro__list li:last-child {margin-bottom: 0;}
 #intro .intro__list li::before {width: 5vw;  bottom: inherit; top: 0; transform:translateY(35%); }
 #intro .intro__check p {text-align: right; width: 100%; max-width: inherit; }
 #intro .intro__check p img {width: 40%;}
 #intro .intro__catch {margin: min(8vw,60px) auto min(6vw,80px); font-size: min(5.4vw,3rem);}
 #intro .intro__catch em {font-size: min(7vw, 4rem);}
 #intro .intro__catch span {padding-bottom: min(4vw, 24px); display: inline-block;}
 #intro .intro__catch span::before {bottom: 5px;}
 #intro h3 {padding: min(3vw,20px);  font-size: min(5vw,2.8rem); margin-bottom: min(6vw,36px);}
 #intro h3::before{ width: min(6vw,36px); height: min(3vw,18px); }
 #intro h4 {font-size: min(5vw,2rem); margin-bottom: min(3vw,20px);}
 #intro .tblCause {font-size: min(3.8vw, 1.4rem);}
 #intro .tblCause thead th, #intro .tblCause tbody th, #intro .tblCause tbody td {padding: min(3vw, 12px); }
 
 #intro .flxGraph {column-gap: min(2vw,10px); margin: min(4vw,40px) auto 0;}
 #intro .flxG__cont {padding: min(3vw,30px);}
 #intro .flxG__cont h5 {font-size: min(4vw, 20px);}
 #intro .read { font-size: min(3.8vw, 1.8rem);} 
 #intro .flxGraph__txt { margin: min(2vw, 10px) auto min(10vw,60px); font-size: 3.4vw;}

}


#feature {background: #f2f1e9; padding: min(7.5vw, 90px) 0 min(12.5vw,150px);}
#feature .ttlCommon {margin-bottom: min(5.83vw,70px);}
#feature .feat__cont {position: relative;}
#feature .feat__cont p.feat__num {font-family: var(--ff-num); color: var(--c-green); font-size: min(10vw,12rem); line-height: 0.05!important; font-weight: 500; position: absolute;}
#feature .feat__cont h3 {font-weight: 700;font-size: min(2vw, 2.4rem); margin-bottom: min(2.5vw, 30px);}
#feature .feat__cont p {line-height: 1.9; margin: 0;}

@media (max-width: 767px) {
 #feature {padding: min(8vw, 90px) 0 min(10vw,150px);}
 #feature .ttlCommon {margin-bottom: min(6vw,70px);}
 #feature .feat__txt {padding-top: min(14vw,80px);}
 #feature .feat__cont p.feat__num {font-size: min(18vw,12rem); line-height: 1 !important; left: 50%; top:0; transform: translate(-50%,-20%);}
 #feature .feat__cont h3 {font-size: min(4.6vw, 2.4rem); margin-bottom: min(4vw, 30px); color: var(--c-green); text-align: center;}
}

.feature--01{text-align: center; display: flex; display: -webkit-flex; flex-wrap: wrap; flex-direction: column-reverse;}
.feature--01 .feat__img {display: flex; display: -webkit-flex; justify-content: space-between; flex-wrap: wrap; column-gap: min(0.83vw, 10px); margin: 0;}
.feature--01 .feat__img li {flex: 1;}
.feature--01 .feat__txt {position: relative; margin-top: min(5.83vw,70px);}
.feature--01 .feat__num {left: 50%; top:-0.45em; transform: translate(-50%, 0);}

@media (max-width: 767px) {
 .feature--01{text-align: left; flex-direction: column;}
 .feature--01 .feat__img {column-gap: min(1vw, 10px); margin-top: 6vw;}
}

.feature--02 {display: flex; display: -webkit-flex; justify-content: space-between; flex-wrap: wrap; flex-direction: row-reverse; margin-top: min(7.5vw,90px);}
.feature--02 .feat__img {width: 42%;}
.feature--02 .feat__txt {width: 54%;}
.feature--02 .feat__num {left: 0; top:0; }

@media (max-width: 767px) {
 .feature--02 {flex-direction: column; margin-top: min(7.5vw,90px);}
 .feature--02 .feat__img, .feature--02 .feat__txt {width: 100%;}
 .feature--02 .feat__img {margin-top: min(6vw, 30px);}
}

.feature--03 {display: flex; display: -webkit-flex; justify-content: flex-start; align-items: flex-end; flex-direction: row-reverse; column-gap: min(3.75vw,45px);}
.feature--03 .feat__img {width: min(21.25vw,255px);}
.feature--03 .feat__txt {position: relative; text-align: right; padding-top: min(5.83vw, 70px);}
.feature--03 .feat__num {right: 0; top: 0;}

@media (max-width: 767px) {
 .feature--03 { flex-direction: column-reverse; margin-top: min(8vw, 40px);}
 .feature--03 .feat__img {width: min(36vw,255px); transform: translateY(-10%);}
 .feature--03 .feat__txt {text-align: left; padding: 0;}
 .feature--03 .feat__num {right: inherit; }
}

#feature .flxWrap {margin-top: min(5vw, 60px);}

@media (max-width: 767px) {
 #feature .flxWrap {margin-top: 3vw; display: block;}
}

.feature--04 {width: 48%;}
.feature--04 .feat__img {width: min(23.3vw,280px); margin: 0 auto min(2.5vw,30px);}
.feature--04 .feat__txt {position: relative;}
.feature--04 .feat__num {left: 0; top: -0.5em;}

@media (max-width: 767px) {
.feature--04 {width: 100%;}
.feature--04 .feat__img {width: min(38vw,280px); margin: 0; position: absolute; left: 0; top: 0; transform: translateY(-40%);}
.feature--04 .feat__num { width: 100%; text-align: right; padding: 0 5vw;}
.feature--04 h3 {text-align: right !important;}
}

.feature--05 {width: 43%; margin-top: min(8.3vw, 100px);}
.feature--05 .feat__txt {position: relative; margin-bottom: min(2.5vw, 30px);}
.feature--05 .feat__txt h3 {padding-left: min(11.67vw,140px)}
.feature--05 .feat__num {left: 0; top: 0.2em;}

@media (max-width: 767px) {
 .feature--05 {width: 100%; margin-top: min(8vw, 100px);}
 .feature--05 .feat__txt {margin-bottom: min(5vw, 30px);}
 .feature--05 .feat__txt h3 {padding-left:0;}
 .feature--05 .feat__num { top: inherit;}
}

.feature--06 {margin: min(6.6vw, 80px) auto 0;}
.feature--06 .feat__img {position: absolute; left: min(12.5vw, 150px); top: 0; transform: translateY(-90%);}
.feature--06 .feat__txt {display: flex; display:-webkit-flex; align-items: center; position: relative;}
.feature--06 .feat__txt h3 {width: 38%; text-align: center; margin: 0 !important;}
.feature--06 .feat__txt p:not(.feat__num) {width: 58%;}
.feature--06 .feat__num {left: 0; top: -0.25em;}

@media (max-width: 767px) {
 .feature--06 {margin: min(8vw, 80px) auto 0;}
 .feature--06 .feat__img {left: inherit; right: 0; top: 0; transform: none; width: 28vw;}
 .feature--06 .feat__txt {display: block;}
 .feature--06 .feat__txt h3 {width: 100%; text-align: left !important; }
 .feature--06 .feat__txt p:not(.feat__num) {width: 100%; margin-top: min(5vw,30px) !important;}
 .feature--06 .feat__num { top:inherit; width: 100%; text-align: left;}
}

.feature--07 {margin: min(6.6vw, 80px) auto 0;　display: flex; display: -webkit-flex; justify-content: space-between; flex-wrap: wrap; flex-direction: row-reverse; align-items: center;}
.feature--07 .feat__img {width: 42%;} 
.feature--07 .feat__txt {position: relative; width: 54%;}
.feature--07 .feat__txt h3 {padding-left: min(11.67vw,140px)}
.feature--07 .feat__num {left: 0; top: 0;}

@media (max-width: 767px) {
 .feature--07 {margin: min(8vw, 80px) auto 0; flex-direction: column; }
 .feature--07 .feat__img {width: 100%; margin-top: 5vw;} 
 .feature--07 .feat__txt { width: 100%;}
 .feature--07 .feat__txt h3 {padding-left: 0}
}

.feature__bottom {padding-top: min(8.75vw,105px); position: relative;}

@media (max-width: 767px) {
 .feature__bottom {padding-top: 0; }
}

.feature--08 {width: 45%; position: absolute !important; right: 0; top:0; display: flex; display: -webkit-flex; justify-content: space-between; align-items: center;}
.feature--08 .feat__img {width: 36%;}
.feature--08 .feat__txt {width: 60%; position: relative;}
.feature--08 .feat__num {right: 0; top: -0.5em;}

@media (max-width: 767px) {
 .feature--08 {width: 100%; position: relative!important; display: block; margin-top: 8vw;}
 .feature--08 .feat__img {width: 26vw; position: absolute; right: -2vw; bottom: 0;}
 .feature--08 .feat__txt {width: 100%; position: relative;}
 .feature--08 .feat__num {right: inherit; top: inherit;}
 .feature--08 .feat__txt h3 {padding-right: 30vw; text-align: left!important;}
 .feature--08 .feat__txt p:not(.feat__num) {padding-right: 28vw;}
}

.feature--09 {display: flex; display: -webkit-flex; justify-content: space-between; flex-wrap: wrap; flex-direction: row-reverse; align-items: flex-end; width: 96%; margin: 0 auto;}
.feature--09 .feat__img {width: 42%;}
.feature--09 .feat__txt {width: 53%;  position: relative;} 
.feature--09 .feat__txt h3 {padding-left: min(11.67vw,140px)}
.feature--09 .feat__num {left: 0; top: 0.25em;}

@media (max-width: 767px) {
 .feature--09 {flex-direction:  column; width: 100%; margin-top: 8vw; }
 .feature--09 .feat__img {width: 100%; margin-top: 6vw;}
 .feature--09 .feat__txt {width: 100%;} 
 .feature--09 .feat__txt h3 {padding-left: 0;}
 .feature--09 .feat__num {top: inherit;}
}


#disease {padding: min(9.17vw,110px) 0;}
#disease .ttlCommon {margin-bottom: min(6.6vw,80px);}
.dis__cont .dis__txt p {margin: 0; line-height: 2;}

.disease--01 {position: relative; padding-top: min(13.3vw,160px); width: 95%; margin: 0 auto;}
.disease--01 .dis__txt {width: 65%; background:#fff; padding: min(6.25vw,75px)  min(6.25vw,75px) 0 0; position: relative; z-index: 1;}
.disease--01::before {content: ""; width: 55%; height: 100%; position: absolute; right: 0; top: 0; background: url("../../img/img-disease-01.jpg") center center / cover no-repeat;}

.disease--02 {margin-top: min(9.17vw,110px); display: flex; display: -webkit-flex; justify-content: space-between; flex-wrap: wrap; flex-direction: row-reverse; align-items: center;}
.disease--02 .dis__txt {width: 51%;}
.disease--02 .dis__img {width: 43%;}

.dis__ex {position: relative; border: 2px solid var(--c-green); border-radius: min(1.66vw, 20px); text-align: center; color: var(--c-green); margin-top: min(12vw,145px); padding: min(4.16vw, 50px) min(6.6vw, 80px);}
.dis__ex h3 {width: 100%; text-align: center; position: absolute; left: 0; top: 0; transform: translateY(-50%);}
.dis__ex h3 span {background: #fff; font-size: min(2.33vw,2.8rem); padding: 0 1em; letter-spacing: 0.1rem;}
.dis__ex ul {margin: 0; display: flex; display: -webkit-flex; justify-content: center; column-gap: 1%; flex-wrap: wrap;}
.dis__ex ul li {width: 24%; flex-grow: 4; background: #e3f1d2; margin-top: 1%; padding: min(1.66vw, 20px); font-size: min(1.66vw, 2rem); }

@media (max-width: 767px) {
 #disease {padding: min(10vw,110px) 0;}
 #disease .ttlCommon {margin-bottom: min(8vw,80px);}
 .disease--01 {padding: 0 0 60vw 0; width: 100%; margin: 0 auto;}
 .disease--01 .dis__txt {width: 100%; padding: 0; }
 .disease--01::before {width: 90%; height: 55vw;  top: inherit; bottom: 0;}

 .disease--02 {margin-top: min(8vw,110px);display: block;}
 .disease--02 .dis__txt {width: 100%;}
 .disease--02 .dis__img {width: 100%; margin-top: 5vw;}

 .dis__ex {border-radius: min(2vw, 20px); margin-top: min(15vw,145px); padding: 6vw 5vw;}
 .dis__ex h3 span {font-size: min(5vw,2.8rem);}
 .dis__ex ul li {width: 49%; flex-grow:2;  padding: min(3vw, 20px); font-size: min(4vw, 2rem); }
}

#flow {padding: min(9.17vw,110px) 0; background: #EBF1DB; background: linear-gradient(90deg, rgba(235, 241, 219, 1) 0%, rgba(228, 250, 218, 1) 100%);}
#flow .ttlCommon {margin-bottom: min(7.17vw,86px);} 
.flow__cont {display: flex; display: -webkit-flex; column-gap: min(4.16vw,50px); padding-left:min(10.83vw,130px); position: relative; padding-bottom: min(7.5vw, 90px);}
.flow__cont:last-child {padding-bottom: 0;}
.flow__cont::before {content: ""; width: min(0.5vw,6px); height: 100%; background-image: url("../../img/line-dot-03.png"); background-position: center top; background-size: 100% auto; background-repeat: repeat-y; position: absolute; left: min(3.08vw,37px); top: 0;}
.flow__cont:last-child::before {content: none;}
.flow__cont .flow__num {position: absolute; left: 0; top: 0; width: min(6.6vw,80px); aspect-ratio: 1/1; border-radius: 50%; display: flex; display: -webkit-flex; justify-content: center; align-items: center; font-size: min(2.5vw,3rem); font-family: var(--ff-en); background: #fff; border: 3px solid #5ac96f; color: #5ac96f;}
.flow__cont .flow__txt {flex: 1;}
.flow__cont h3 {font-size: min(2.67vw,3.2rem); font-weight: 700; margin: min(1.25vw, 15px) 0 min(1.66vw, 20px); line-height: 1.2; color: #5ac96f;}
.flow__cont .flow__txt p {margin: 0; line-height: 1.8;}
.flow__cont .flow__img {width: 44%;}

.flow--01 .flow__num, .flow--01 h3 {color: #9c78ce;}
.flow--01 .flow__num {border-color: #9c78ce;}
.flow--01::before {background-image: url("../../img/line-dot-01.png");}

.flow--02 .flow__num, .flow--02 h3 {color: #2bb4c4;}
.flow--02 .flow__num {border-color: #2bb4c4;}
.flow--02::before {background-image: url("../../img/line-dot-02.png");}

@media (max-width: 767px) {
 #flow {padding: min(10vw,110px) 0; }
 #flow .ttlCommon {margin-bottom: min(8vw,86px);} 
.flow__cont {display: block; padding-left:min(20vw,130px); padding-bottom: min(10vw, 90px);}
.flow__cont::before {width: min(1.2vw,6px); left: min(7.4vw,37px); }
.flow__cont .flow__num {width: min(16vw,80px);font-size: min(6vw,3rem); }
.flow__cont h3 {font-size: min(6vw,3.2rem); margin: 0 0 min(4vw, 20px); padding-top: 3.4vw;}
.flow__cont .flow__img {width: 100%; margin-top: 5vw;}
}

#price {padding: min(7.5vw, 90px) 0 min(11.6vw,140px);}

.ttlPrice {margin-bottom: min(5vw,60px);}
.tblPrice {width: 100%; margin-bottom: min(2.5vw,30px);}
.tblPrice thead tr {border-top: 1px solid var(--c-green); border-bottom: 1px solid var(--c-green); color: var(--c-green); text-align: center; font-weight: 600; background: #d0e7b2;}
.tblPrice thead tr th {padding: min(0.83vw,10px);}
.tblPrice tbody tr {border-bottom: 1px solid var(--c-green);}
.tblPrice tbody th, .tblPrice tbody td {padding: min(0.83vw,10px);}
.tblPrice tbody th {text-align: left; font-weight: normal;}
.tblPrice tbody td {text-align: center;}

.ttlCT {margin: min(10vw, 120px) auto min(3.3vw,40px);}

@media (max-width: 767px) {
 #price {padding: min(10vw, 90px) 0;}
.ttlPrice {margin-bottom: min(8vw,60px);}
.tblPrice {margin-bottom: min(4vw,30px);}
.tblPrice thead tr th,.tblPrice tbody th, .tblPrice tbody td {padding: min(2vw,10px);}
.tblPrice tbody td {width: 20%;}
.ttlCT {margin: min(10vw, 120px) auto min(5vw,40px);}
}


/* ----------------------------------------------------
footer (common)
---------------------------------------------------- */
#footer {border-top: 1px solid #fff; background: #2a7838; color: #fff; padding: min(6.67vw,80px) 0 0;}
#footer .ttlCommon {margin-bottom: min(5vw, 60px);}
.ft__info {width: 90%; max-width: 970px; margin-inline: auto; display: flex; display: -webkit-flex; justify-content: space-between; font-size: min(1.16vw, 1.4rem); margin-bottom: min(5.83vw,70px);}
.ft__address {width:min(64%,620px);}
.ft__address__txt {position: relative;}
.ft__btn {position: absolute; right: 0; top: 50%; margin: 0; transform: translateY(-50%);}
.ft__btn a {display: block; color: #fff; background: #449452; border-radius: 30vw; padding: min(1.25vw, 15px) min(4.16vw,50px); font-size: min(1.5vw,1.8rem); position: relative;}
.ft__btn a::before {content: ""; width: min(0.83vw, 10px); aspect-ratio: 1/1; border-top: 2px solid #fff; border-right: 2px solid #fff; position: absolute; right: min(1.66vw, 20px); top: 50%; transform: translateY(-50%) rotate(45deg);}
.ft__cal {width: min(32%,286px);}

.ft__tel {font-size: min(5vw, 3rem); letter-spacing: 0.15rem;}
.ft__tel a {color: #fff;}
.ft__tel a span {position: relative; padding-left: 1.2em;}
.ft__tel a span::before {content: ""; background: url("../../img/ic-cta_tel.png") center center / cover no-repeat; width: min(4vw,26px); aspect-ratio: 29/31; position: absolute; left: 0; top: 50%; transform: translateY(-40%);}
.tblTime {width: 100%; border-bottom: 1px solid #fff; margin-top: min(2.5vw, 30px);}
.tblTime thead th {text-align: center; padding: min(1vw,12px); border-top: 1px solid #fff; border-bottom: 1px solid #fff;}
.tblTime tbody tr:nth-child(odd) {background: #449452; }
.tblTime tbody th {text-align: left; font-weight: normal; padding: min(1vw,12px);}
.tblTime tbody td {text-align: center; padding: min(1vw,12px); }

.ft__access {margin-bottom: min(5vw, 60px);}
.ft__map {width: 100%; height: min(31.67vw,380px); overflow: hidden; margin-bottom: min(3.3vw, 40px);}
.ft__map iframe {width: 100%; height: 100%;}

.ft__access h3 {font-size: min(2vw, 2.4rem); font-weight: 600; color: #fff; background: #449452; padding: min(1.25vw, 15px) min(2vw, 25px); margin-bottom: min(3.3vw, 40px);}
.ft__access .ftFlx {display: flex; display: -webkit-flex; justify-content: space-between; flex-wrap: wrap; }
.ft__access .ftFlx:not(:last-child) {margin-bottom: min(4.16vw,50px);}
.ft__access .ftAccess {width: 49%; margin-bottom: min(3.3vw, 40px);}
.ft__access .ftAccess h4 {font-weight: 600; font-size: min(1.66vw,2rem); margin-bottom: min(1.66vw,20px); padding-left: 2.5em; position: relative;}
.ft__access .ftAccess h4::before{content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: min(3.3vw,40px); aspect-ratio: 1/1;  background-size: cover; background-repeat: no-repeat; background-position: center center;}
.ft__access .ftAccess h4.ft--car::before {background-image: url("../../img/ic-car-01.png");}
.ft__access .ftAccess h4.ft--train::before {background-image: url("../../img/ic-train-01.png");}
.ft__access .ftAccess ul {margin: 0;}
.ft__access .ftAccess ul li {margin: min(0.83vw,10px) 0;}

.copy {text-align: center; padding: min(2.5vw, 30px) 5%; background: #094d15; font-size: min(1vw, 1.2rem);}

#pagetop {  position: fixed;  bottom: 4%;  right: 3%;  z-index: 7;}
#pagetop a { display: block;  width: 45px;  height: 45px; border-radius: 50%; background-color: #094d15;   color: #fff;  position: relative; z-index: 8;}
#pagetop a::before {content: ""; width: 12px; height: 12px; border-top: 2px solid #fff; border-right: 2px solid #fff; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%) rotate(-45deg); z-index: 9;}


 @media (max-width: 767px) {
 #footer {padding: min(8vw,80px) 0 0;}
 #footer .ttlCommon {margin-bottom: min(5vw, 60px);}
 .ft__info {width: 90%; font-size: min(3.8vw, 1.4rem); margin-bottom: min(10vw,70px); display: block;}
 .ft__address {width:100%; text-align: center;}
 .ft__btn {position: relative; right: inherit; top: inherit; margin: 0; transform: none;}
 .ft__btn a {padding: min(3vw, 15px) min(10vw,50px); font-size: min(4vw,1.8rem); width: 80%; margin: 3vw auto 6vw; text-align: center;}
 .ft__btn a::before {width: min(2vw, 10px); right: min(4vw, 20px);}
 .ft__cal {width: 80%; margin: 8vw auto 0;}
 .ft__tel {font-size: min(7vw, 3rem);}
 .ft__tel a span::before {width: min(5.5vw,26px);}
 .tblTime {width: 100%; border-bottom: 1px solid #fff; margin-top: min(2.5vw, 30px); font-size: min(3.4vw, 1.5rem);}
 .tblTime thead th, .tblTime tbody th {padding: min(2vw,12px) min(0.5vw,12px);}
 .tblTime tbody td {padding: min(2vw,12px) min(0.5vw,12px); width: 10%; }
  .ft__access {margin-bottom: min(5vw, 60px);}
 .ft__map {height: min(50vw,380px); margin-bottom: min(6vw, 40px);}
 .ft__access h3 {font-size: min(5.4vw, 2.4rem); padding: min(3vw, 15px) min(5vw, 25px); margin-bottom: min(8vw, 40px);}
 .ft__access .ftFlx {display: block;}
 .ft__access .ftFlx:not(:last-child) {margin-bottom: min(10vw,50px);}
 .ft__access .ftAccess {width: 100%; margin-bottom: min(8vw, 40px);}
 .ft__access .ftAccess h4 {font-size: min(5vw,2rem); margin-bottom: min(4vw,20px); padding-left: 2em;}
 .ft__access .ftAccess h4::before{width: min(8vw,40px);}
 .ft__access .ftAccess ul li {margin: min(2vw,10px) 0;}
 .copy {padding: min(5vw, 30px) 5%; font-size: min(3.5vw, 1.2rem);}
 }


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
pcSetting
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media (min-width:768px) {
/* ----------------------------------------------------
common(pc)
---------------------------------------------------- */
/* hover */
a:hover {
  opacity: .8 !important;
  text-decoration: none;
  transition: all 0.2s ease-in-out;
}
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
tabletSetting
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media (max-width: 1200px) and (min-width: 768px) {

}

/*━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
spSetting
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media (max-width: 767px) {


/* ----------------------------------------------------
footer(sp)
---------------------------------------------------- */

}