@import url("https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@300;400;500;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@400;500;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600;900&family=Zen+Kaku+Gothic+New:wght@300;400;500;700&display=swap");
.inner { position: relative; z-index: 10; width: 100%; max-width: 380px; margin: 0 auto; }
@media (max-width: 959px) { .inner { width: 100%; max-width: 100%; } }

html { overflow-x: hidden; overflow-y: scroll; scroll-behavior: smooth; scroll-padding-top: 134px; -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
@media (max-width: 959px) { html { scroll-padding-top: 20vw; } }

body { overflow: hidden; padding: 0; margin: 134px auto 0 auto; color: #3C3C3C; font-size: 18px; text-align: left; line-height: 1.5em; font-weight: 400; font-style: normal; letter-spacing: 1px; font-family: 'Zen Maru Gothic', sans-serif; }
@media (max-width: 959px) { body { margin: 22vw auto 0 auto; font-size: 3.5vw; line-height: 1.7em; } }

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

a[href], label[for], button, input[type="button"], input[type="submit"], input[type="radio"], input[type="checkbox"], select { cursor: pointer; }

a { outline: none; text-decoration: none; -webkit-transition: all .3s; transition: all .3s; }
a:link, a:visited { color: #3B4043; }
a:hover { color: #3B4043; text-decoration: none; }
a:hover img { opacity: 0.6; -webkit-transition: all .3s; transition: all .3s; }
a:focus { outline: none; }

img { border: 0; margin: 0; padding: 0; max-width: 100%; line-height: 100%; vertical-align: bottom; }

h1, h2, h3, h4, h5 { margin: 0; padding: 0; font-size: 1em; line-height: 1.5em; font-weight: normal; }

ul, ol { margin: 0; padding: 0; clear: both; display: block; list-style-type: none; }

dl, dt, dd { margin: 0; padding: 0; overflow: hidden; }

i { font-style: normal; }

p { margin: 0; }

br.SP { display: none; }
@media (max-width: 959px) { br.SP { display: block; } }

.bg { position: fixed; top: 0; left: 0; z-index: 0; width: 100%; height: 100vh; background: #fff url(../img/bg/pc_bg.jpg) no-repeat top center/100% auto; }
@media (max-width: 959px) { .bg { background: none; } }

header { position: fixed; top: 0; left: 0; z-index: 1000; display: -webkit-flex; display: flex; -webkit-justify-content: space-between; justify-content: space-between; -webkit-box-align: start; align-items: flex-start; width: 100%; margin: 0 auto; padding: 30px 4vw; background: #fff; }
@media (max-width: 959px) { header { -webkit-box-align: center; align-items: center; padding: 6vw 5% 4vw 5%; background: #fff url(../img/img2/img4.png) no-repeat top left/100% auto; } }
header h1 { width: 160px; height: auto; }
@media (max-width: 959px) { header h1 { width: 100%; } }
header > div:nth-child(1) { display: -webkit-flex; display: flex; width: 50%; }
@media (max-width: 959px) { header > div:nth-child(1) { width: 30%; } }
header > div:nth-child(1) div { margin-left: 45px; color: #E69789; font-size: 22px; line-height: 100%; font-weight: 500; font-family: 'M PLUS Rounded 1c', sans-serif; }
@media (max-width: 1280px) { header > div:nth-child(1) div { font-size: 18px; } }
@media (max-width: 959px) { header > div:nth-child(1) div { display: none; } }
header > div:nth-child(1) div span { display: block; margin-bottom: 0.5em; padding: 0.4em 0 0.4em 0; text-align: center; border-radius: 100px; border: 1px solid #E69789; }
header > div:nth-child(2) { display: -webkit-flex; display: flex; -webkit-justify-content: flex-end; justify-content: flex-end; width: 50%; }
@media (max-width: 959px) { header > div:nth-child(2) { -webkit-box-align: center; align-items: center; width: 67%; } }
header > div:nth-child(2) a img { width: 270px; }
@media (max-width: 959px) { header > div:nth-child(2) a img { width: 45vw; } }

#Nav_Btn { position: relative; z-index: 1000; cursor: pointer; width: 66px; height: 66px; margin-left: 50px; background: url(../img/icon/btn1.png) no-repeat center center/100% auto; -webkit-transition: all .3s; transition: all .3s; }
@media (max-width: 959px) { #Nav_Btn { width: 10vw; height: 10vw; margin-left: 3vw; } }
#Nav_Btn:hover { opacity: 0.7; }
#Nav_Btn.active { background: url(../img/icon/btn2.png) no-repeat center center/100% auto; }

#Nav_Btn2 { position: relative; z-index: 1000; cursor: pointer; width: 66px; height: 66px; margin-left: 50px; background: url(../img/icon/btn2.png) no-repeat center center/100% auto; -webkit-transition: all .3s; transition: all .3s; }
@media (max-width: 959px) { #Nav_Btn2 { width: 10vw; height: 10vw; margin-left: 3vw; } }

nav { position: fixed; top: 0; right: -200%; z-index: 1000; width: 500px; background: #EF9B8C; transition: all 0.3s; }
@media (max-width: 959px) { nav { width: 100%; height: 100vh; overflow-y: scroll; } }
nav.active { right: 0; }
nav .header { display: -webkit-flex; display: flex; -webkit-box-align: center; align-items: center; -webkit-justify-content: space-between; justify-content: space-between; width: 330px; padding: 30px 0; margin: 0 auto; }
@media (max-width: 959px) { nav .header { width: 90%; padding: 6vw 3vw 3vw 0; } }
nav .header #Nav_Btn2 { width: 26px; }
@media (max-width: 959px) { nav .header #Nav_Btn2 { width: 5vw; } }
nav h1 { width: 160px; height: auto; }
@media (max-width: 959px) { nav h1 { width: 32%; } }
nav ul { display: -webkit-flex; display: flex; -webkit-justify-content: space-between; justify-content: space-between; -webkit-flex-wrap: wrap; flex-wrap: wrap; width: 330px; margin: 0 auto; }
@media (max-width: 959px) { nav ul { width: 90%; } }
nav li { margin-bottom: 10px; }
@media (max-width: 959px) { nav li { margin-bottom: 3vw; } }
nav li img { display: block; width: 50%; margin: 0 auto; }
nav li a:link, nav li a:visited { display: -webkit-flex; display: flex; -webkit-justify-content: center; justify-content: center; -webkit-box-align: center; align-items: center; width: 160px; height: 160px; font-size: 15px; font-weight: 500; text-align: center; background: #fff; border-radius: 8px; }
@media (max-width: 959px) { nav li a:link, nav li a:visited { width: 43.5vw; height: 160px; } }
nav li a:link:hover, nav li a:visited:hover { opacity: 0.7; }
nav ul + a { display: block; width: 300px; margin: 20px auto 60px auto; }
@media (max-width: 959px) { nav ul + a { width: 80%; margin: 3vw auto 5vw auto; } }

.MainImage { position: relative; background: #fff; }
.MainImage .swiper-container, .MainImage h2, .MainImage p { animation-name: fadeUpAnime; animation-duration: 4.0s; animation-fill-mode: forwards; opacity: 0; }
@keyframes fadeUpAnime { from { opacity: 0; }
  to { opacity: 1; } }
.MainImage:after { content: ""; position: absolute; bottom: -20px; left: 0; z-index: 100; display: block; width: 100%; height: 40px; background: url(../img/bg/bg4.png) no-repeat bottom left/100% auto; }
@media (max-width: 959px) { .MainImage:after { bottom: -3px; height: 5vw; background: url(../img/bg/bg4.png) no-repeat top left/100% auto; } }
.MainImage h2 { position: absolute; top: 43.5%; left: 8%; z-index: 100; color: #fff; font-size: 24px; letter-spacing: 2px; line-height: 1.6em; font-weight: 700; font-family: 'M PLUS Rounded 1c', sans-serif; text-shadow: 1px 1px 2px #666; }
@media (max-width: 959px) { .MainImage h2 { font-size: 6.2vw; } }
.MainImage p { position: absolute; top: 67.5%; left: 8%; z-index: 100; color: #fff; font-size: 18px; letter-spacing: 2px; line-height: 2.1em; font-weight: 500; font-family: 'M PLUS Rounded 1c', sans-serif; }
@media (max-width: 959px) { .MainImage p { font-size: 4.5vw; } }
.MainImage .swiper-slide img { width: 100%; }

section { padding: 45px 0; }
@media (max-width: 959px) { section { padding: 15vw 0; } }
section .Contents { padding: 0 9%; }
section h2 { margin-bottom: 0.8em; font-size: 24px; font-weight: 700; line-height: 100%; }
@media (max-width: 959px) { section h2 { font-size: 6vw; } }
section h2 img { display: block; width: 58px; margin-bottom: 15px; }
@media (max-width: 959px) { section h2 img { width: 15vw; } }
section h2 i { display: block; margin-top: 1em; font-size: 17px; font-weight: 700; font-family: 'M PLUS Rounded 1c', sans-serif; }
@media (max-width: 959px) { section h2 i { font-size: 5vw; } }
section p { font-size: 15px; font-weight: 700; line-height: 1.93em; }
@media (max-width: 959px) { section p { font-size: 4vw; } }
section#Philosophy { background: #FFF1EC; }
section#Philosophy h2 i { color: #EF9B8C; }
section#Philosophy .Contents + img { display: block; width: 90%; margin: 20px 0 0 auto; }
section#Overview { background: #fff url(../img/img2/bg.png) no-repeat top right/100% auto; }
section#Overview h2 i { color: #99C2FF; }
section#Overview dl { margin: 35px 0 25px 0; }
@media (max-width: 959px) { section#Overview dl { margin: 8vw 0; } }
section#Overview dt { clear: both; float: left; width: 38%; padding: 5px 0; margin: 0 0 1.1em 0; font-size: 14px; line-height: 1.5em; text-align: center; font-weight: 700; font-family: 'Zen Maru Gothic', sans-serif; background: url(../img/bg/bg1.png) no-repeat center center/100% 100%; }
@media (max-width: 959px) { section#Overview dt { font-size: 3.75vw; } }
section#Overview dd { float: left; width: 62%; padding: 5px 0 5px 1.5em; margin: 0 0 1.1em 0; font-size: 14px; line-height: 1.5em; font-weight: 500; font-family: 'Zen Maru Gothic', sans-serif; }
@media (max-width: 959px) { section#Overview dd { font-size: 3.75vw; } }
section#Overview ul { display: -webkit-flex; display: flex; -webkit-box-align: start; align-items: flex-start; -webkit-flex-wrap: wrap; flex-wrap: wrap; -webkit-justify-content: space-between; justify-content: space-between; padding: 0 5%; }
section#Overview li { width: 49%; margin-bottom: 20px; }
@media (max-width: 959px) { section#Overview li { margin-bottom: 6vw; } }
section#Overview li p { margin-top: 1.2em; font-size: 14px; line-height: 100%; text-align: center; }
@media (max-width: 959px) { section#Overview li p { font-size: 3.75vw; } }
section#Staff { background: #FFF8F3; }
section#Staff h2 { background: url(../img/img2/img1.png) no-repeat bottom 10% right 5%/23% auto; }
section#Staff h2 i { color: #F7C077; }
section#Staff dl { margin: 15px 0 0 0; padding: 35px 0 0 15%; background: #fff; border-radius: 10px; border: 2px solid #F7C077; }
@media (max-width: 959px) { section#Staff dl { margin: 5vw 0 0 0; padding: 10vw 0 0 15%; } }
section#Staff dt { clear: both; float: left; width: 50%; margin: 0 0 1.45em 0; font-size: 15px; line-height: 100%; font-weight: 700; font-family: 'Zen Maru Gothic', sans-serif; }
@media (max-width: 959px) { section#Staff dt { font-size: 3.8vw; } }
section#Staff dd { float: left; width: 50%; padding: 0 0 0 2em; margin: 0 0 1.45em 0; font-size: 15px; line-height: 100%; font-weight: 700; font-family: 'Zen Maru Gothic', sans-serif; }
@media (max-width: 959px) { section#Staff dd { font-size: 3.8vw; } }
section#Staff .Contents + div { padding: 45px 3% 0 3%; background: url(../img/img2/img2.png) no-repeat top 1% left 11%/14% auto; }
@media (max-width: 959px) { section#Staff .Contents + div { padding: 9vw 3% 0 3%; background: url(../img/img2/img2.png) no-repeat top 1% left 11%/12% auto; } }
section#Staff .Contents + div img + img { display: block; width: 95%; margin-top: 35px; }
@media (max-width: 959px) { section#Staff .Contents + div img + img { margin-top: 10vw; } }
section#Service { position: relative; padding: 50px 0 20px 0; background: #fff url(../img/bg/bg2.png) no-repeat top left/100% auto; }
@media (max-width: 959px) { section#Service { padding: 15vw 0 5vw 0; } }
section#Service:before { content: ""; position: absolute; top: 17px; left: 0; display: block; width: 100%; height: 20px; background: #fff url(../img/bg/bg3.png) no-repeat top left/100% auto; }
@media (max-width: 959px) { section#Service:before { top: 5vw; height: 6vw; } }
section#Service:after { content: ""; position: absolute; bottom: 0; left: 0; display: block; width: 100%; height: 40px; background: #fff url(../img/bg/bg4.png) no-repeat bottom left/100% auto; }
@media (max-width: 959px) { section#Service:after { height: 5vw; background: #fff url(../img/bg/bg4.png) no-repeat top left/100% auto; } }
section#Service h2 { background: url(../img/img2/img3.png) no-repeat bottom 10% right 5%/35% auto; }
section#Service h2 i { color: #8FC8AB; }
section#Service dl { margin: 30px 0 50px 0; }
@media (max-width: 959px) { section#Service dl { margin: 9vw 0 10vw 0; } }
section#Service dt { display: -webkit-flex; display: flex; -webkit-box-align: center; align-items: center; width: 100%; padding: 0 0 1em 0; margin: 0 0 0.8em 0; color: #1FB472; font-size: 17px; line-height: 1.2em; font-weight: 700; font-family: 'Zen Maru Gothic', sans-serif; background: url(../img/img2/img5.png) no-repeat bottom center/100% auto; }
section#Service dt img { width: 2.7em; margin-right: 0.5em; }
section#Service dd { width: 100%; margin: 0 0 2.5em 0; font-size: 15px; line-height: 1.93em; font-weight: 700; font-family: 'Zen Maru Gothic', sans-serif; }
section#Facility { padding: 30px 0 45px 0; background: #FFF1EC; }
@media (max-width: 959px) { section#Facility { padding: 12vw 0 15vw 0; } }
section#Facility h2 { background: url(../img/img2/img1.png) no-repeat bottom 10% right 5%/23% auto; }
section#Facility h2 i { color: #EF9B8C; }
section#Facility h3 { margin: 1.5em 0 0.1em 0; color: #EF9B8C; font-size: 17px; font-weight: 700; }
section#Facility ul { padding: 0 5%; margin: 30px 0; }
section#Facility li { width: 100%; margin-bottom: 20px; }
section#Access { background: #fff; }
section#Access h2 i { color: #99C2FF; }
section#Access iframe { display: block; width: 90%; height: 300px; margin: 25px auto; border-radius: 10px; }
section#Access h3 { margin: 0 0 0.2em 0; color: #99C2FF; font-size: 16px; font-weight: 700; }
section#Access p + h3 { margin-top: 1em; }
section.Contact { background: #EF9B8C; }
section.Contact h2 { color: #fff; background: url(../img/img2/img1.png) no-repeat bottom 10% right 5%/23% auto; }
section.Contact p { color: #fff; font-size: 15px; }
section.Contact a img { display: block; width: 100%; margin: 20px 0 10px 0; }
section.Contact a + p { line-height: 2.5em; text-align: center; }
section.Contact a.mail { display: -webkit-flex; display: flex; -webkit-box-align: center; align-items: center; margin-bottom: 30px; color: #fff; font-weight: 700; font-family: 'Zen Maru Gothic', sans-serif; }
@media (max-width: 959px) { section.Contact a.mail { font-size: 4.5vw; } }
section.Contact a.mail img { width: 2em; margin: 0 0.5em 0 0; }
section.Contact a.PDF { display: block; margin: 0 auto; }
section#Privacy { padding: 120px 0 20px 0; background: #fff url(../img/img2/img3.png) no-repeat top 15px right 20%/28% auto; }
@media (max-width: 959px) { section#Privacy { padding: 28vw 0 5vw 0; background: #fff url(../img/img2/img3.png) no-repeat top 0 right 20%/28% auto; } }
section#Privacy h2 i { color: #8FC8AB; }
section#Privacy dl { margin: 70px 0 0 0; }
@media (max-width: 959px) { section#Privacy dl { margin: 18vw 0 0 0; } }
section#Privacy dt { width: 100%; padding: 0 0 1em 0; margin: 0 0 0.8em 0; color: #1FB472; font-size: 17px; line-height: 1.2em; font-weight: 700; font-family: 'Zen Maru Gothic', sans-serif; background: url(../img/img2/img5.png) no-repeat bottom center/100% auto; }
section#Privacy dd { width: 100%; margin: 0 0 3.5em 0; font-size: 15px; line-height: 1.93em; font-weight: 700; font-family: 'Zen Maru Gothic', sans-serif; }

footer { overflow: hidden; position: relative; z-index: 10; padding: 240px 0 120px 0; background: #fff; }
@media (max-width: 959px) { footer { padding: 9vw 0 17vw 0; } }
footer .Contents { display: -webkit-flex; display: flex; -webkit-justify-content: space-between; justify-content: space-between; -webkit-box-align: start; align-items: flex-start; width: 990px; margin: 0 auto 120px auto; }
@media (max-width: 959px) { footer .Contents { display: block; width: 100%; margin: 0 auto 10vw auto; text-align: center; } }
footer .Contents h1 { width: 160px; height: auto; }
@media (max-width: 959px) { footer .Contents h1 { width: 38%; margin: 0 auto; } }
footer .Contents h2 { margin-bottom: 1em; padding: 0 0 1em 0; color: #505050; font-size: 20px; font-weight: 500; border-bottom: 1px solid #505050; }
@media (max-width: 959px) { footer .Contents h2 { display: none; } }
footer .Contents .Address { width: 33%; font-size: 15px; line-height: 2.1em; font-weight: 500; font-family: 'Zen Maru Gothic', sans-serif; }
@media (max-width: 959px) { footer .Contents .Address { width: 90%; padding: 0 0 12vw 0; margin: 8vw auto 0 auto; font-size: 4vw; border-bottom: 1px solid #505050; } }
footer .Contents .Sitemap { width: 35%; }
@media (max-width: 959px) { footer .Contents .Sitemap { width: 80%; margin: 0 auto; padding: 8vw 0 0 0; } }
footer .Contents .Sitemap ul { display: -webkit-flex; display: flex; -webkit-justify-content: space-between; justify-content: space-between; -webkit-box-align: start; align-items: flex-start; }
footer .Contents .Sitemap li { width: 45%; }
@media (max-width: 959px) { footer .Contents .Sitemap li { text-align: left; } }
@media (max-width: 959px) { footer .Contents .Sitemap li + li { width: 55%; } }
footer .Contents .Sitemap a:link, footer .Contents .Sitemap a:visited { font-size: 14px; line-height: 2.1em; font-weight: 500; font-family: 'Zen Maru Gothic', sans-serif; }
@media (max-width: 959px) { footer .Contents .Sitemap a:link, footer .Contents .Sitemap a:visited { font-size: 3.8vw; } }
footer .Contents .Sitemap a:hover { color: #EF9B8C; }
footer > p { font-size: 14px; line-height: 100%; text-align: center; font-weight: 500; font-family: 'Zen Maru Gothic', sans-serif; }
@media (max-width: 959px) { footer > p { font-size: 3.8vw; line-height: 1.5em; } }

.Fixed { display: none; position: fixed; right: 2.5%; bottom: 0; z-index: 10; padding-bottom: 2%; }
@media (max-width: 959px) { .Fixed { display: block; } }
.Fixed .PageTop { display: block; width: 13vw; height: auto; z-index: 100; }
.Fixed .PageTop:hover { opacity: 0.7; }
