@charset "UTF-8";

/*========================================================================
	FAUNDATION
========================================================================*/

/* reset
------------------------------------------------------------------------*/
*, *::before, *::after { box-sizing: border-box; }
a, area, button, [role="button"], input:not([type=range]), label, select, summary, textarea { -ms-touch-action: manipulation; touch-action: manipulation; }
a { text-decoration: none; }
img { max-width: 100%; height: auto; }

/* base
------------------------------------------------------------------------*/
html { font-size: 15px; -webkit-text-size-adjust: 100%; letter-spacing: 0.06em; }
body { position: relative; font-family: "游ゴシック", "YuGothic", "メイリオ", Meiryo, sans-serif; line-height: 1.7; text-align: center; }
_:-ms-fullscreen, :root body { font-family: "メイリオ", Meiryo, sans-serif; } /* IE11 */

@media only screen and (max-width: 1919px) { /* 1440px最適化 */ 
html { font-size: 14px; }
}

@media only screen and (max-width: 1279px) { /* 768px最適化 */
html { font-size: 13px; }
}

/*========================================================================
	LOADING
========================================================================*/

#loadingBox { overflow: hidden; position: fixed; top: 0; left: 0; z-index: 3; width: 100%; height: 100%; background-color: #fff; transition: 0.6s ease 1.2s; }
_:-ms-fullscreen, :root body #loadingBox { z-index: 40; } /* IE11 */
#loadingBox._fadeOut { height: 0; }
#loadingBox #loading { position: absolute; top: 50vh; right: 0; left: 0; margin: 0 auto; transform: translateY(-50%); }
#loadingBox #loadingCover { overflow: hidden; position: absolute; top: 0; left: 0; z-index: 4; width: 100%; height: 100%; background-color: #21ade5; transition: 0.6s ease; }
_:-ms-fullscreen, :root body #loadingBox #loadingCover { z-index: 50; } /* IE11 */
#loadingBox._fadeOut #loadingCover { height: 0; }
#loadingBox #loadingCover .image { position: absolute; top: 50vh; right: 0; left: 0; margin: 0 auto; transform: translateY(-50%); }

@media only screen and (min-width: 1280px) { /* 1280px以上 */
.ipad #loadingBox #loading { top: calc(50vh - 31px); }
.ipad #loadingBox #loadingCover .image { top: calc(50vh - 31px); }
}

@media only screen and (max-width: 767px) { /* 414px最適化 */ 
#loadingBox #loading { width: 200px; }
#loadingBox #loadingCover .image { width: 200px; }
.iphone #loadingBox #loading { top: calc(50vh - 37px); }
.iphone #loadingBox #loadingCover .image { top: calc(50vh - 37px); }
}

/*========================================================================
	HEADER
========================================================================*/

#header { display: flex; justify-content: flex-end; align-items: center; position: absolute; top: calc(100vh - 110px); left: 0; z-index: 1; width: 100%; height: 110px; background-color: #fff; transition: height 0.2s ease; }
_:-ms-fullscreen, :root body #header { z-index: 30; } /* IE11 */

@media only screen and (min-width: 1280px) { /* 1280px以上 */
#header._fixed { position: fixed; top: 0; height: 80px; }
#header._fixed::after { position: absolute; left: 20px; bottom: 0; width: calc(100vw - 40px); height: 3px; background-color: #21ade5; content: ""; }
}

@media only screen and (max-width: 1279px) { /* 768px最適化 */
#header { position: fixed; top: 0; height: 80px; }
#header::after { position: absolute; left: 20px; bottom: 0; width: calc(100vw - 40px); height: 3px; background-color: #21ade5; content: ""; }
}

@media only screen and (max-width: 767px) { /* 414px最適化 */ 
#header::after { left: 10px; width: calc(100vw - 20px); }
}

/* logo
------------------------------------------------------------------------*/
#header #logo { position: absolute; left: 40px; bottom: 25px; z-index: 2; }
#header #logo a { overflow: hidden; display: block; position: relative; width: 210px; height: 246px; }
#header #logo a img { position: absolute; bottom: 0; left: 0; transition: bottom 0.2s ease; }

@media only screen and (min-width: 1280px) { /* 1280px以上 */
#header #logo { transition: opacity 0.6s ease, transform 0.6s ease; }
#header._fixed #logo { bottom: 23px;  }
#header #logo._fadeOut { opacity: 0; transform: translateY(2vh); }
#header #logo._fadeIn { opacity: 1; transform: translateY(0); }
_:-ms-fullscreen, :root body #header #logo._fadeOut { transform: translateY(20px); } /* IE11 */
_:-ms-fullscreen, :root body #header #logo._fadeIn { transform: translateY(0); } /* IE11 */
#header._fixed #logo a { height: 34px; }
#header._fixed #logo a img { bottom: -20px; }
}

@media only screen and (max-width: 1279px) { /* 768px最適化 */
#header #logo a { height: 34px; }
#header #logo a img { bottom: -20px; }
}

@media only screen and (max-width: 767px) { /* 414px最適化 */ 
#header #logo { left: 20px; }
}

/* navigation box
------------------------------------------------------------------------*/
#header #navBox { display: flex; align-items: center; margin-right: 40px; }

@media only screen and (min-width: 1280px) { /* 1280px以上 */
#header #navBox { transition: 0.6s ease; }
#header #navBox._fadeOut { opacity: 0; transform: translateY(2vh); }
#header #navBox._fadeIn { opacity: 1; transform: translateY(0); }
_:-ms-fullscreen, :root body #header #navBox._fadeOut { transform: translateY(20px); } /* IE11 */
_:-ms-fullscreen, :root body #header #navBox._fadeIn { transform: translateY(0); } /* IE11 */
#header._fixed #navBoxL { margin-top: 26px; }
}

@media only screen and (max-width: 1919px) { /* 1440px最適化 */ 
#header #navBoxL { margin-top: 30px; }
#header._fixed #navBoxL { margin-top: 28px; }
}

@media only screen and (max-width: 1439px) { /* 1280px最適化 */ 
#header #navBoxL { margin-right: 30px; }
}

@media only screen and (max-width: 1279px) { /* 768px最適化 */
}

@media only screen and (max-width: 767px) { /* 414px最適化 */ 
#header #navBox { margin-right: 20px; }
}

/* description
------------------------------------------------------------------------*/
#header #description { display: inline-block; margin-right: 30px; /*margin-bottom: 6px;*/ font-size: 0.94rem; font-weight: normal; color: #b5b6b6; line-height: 1.1; white-space: nowrap; }
#header #description::before { content: "〔"; margin: 0 0.5em 0 -0.5em; }
#header #description::after { content: "〕"; margin: 0 -0.5em 0 0.5em; }
#header._fixed #description { display: none; }

@media only screen and (max-width: 1919px) { /* 1440px最適化 */ 
#header #description { display: none; }
}

/* headerBtn
------------------------------------------------------------------------*/
#header #headerBtn { display: flex; }
#header #headerBtn  li { margin-right: 8px;}
#header._fixed #headerBtn  li { margin-right: 6px;}
#header #headerBtn  li a { display: flex; height: 60px; padding: 0 20px; border: 3px solid #21ade5; border-radius: 30px; color: #21ade5; transition: 0.4s ease; }
#header._fixed #headerBtn  li a { height: 44px; padding: 0 15px; border-radius: 27px; }
#header #headerBtn  li.navWeb a,
#header #headerBtn  li.navLine a { flex-direction: column; justify-content: center; font-size: 1.13rem; font-weight: bold; line-height: 1.3em; }
#header._fixed #headerBtn  li.navWeb a,
#header._fixed #headerBtn  li.navLine a { font-size: 1.06rem; transition: 0.2s ease; }
#header #headerBtn  li.navWeb a span,
#header #headerBtn  li.navLine a span { display: block; padding-top: 0.2em; font-size: 0.8rem; font-weight: normal; letter-spacing: 0; line-height: 1em; transition: font-size 0.2s ease; }
#header._fixed #headerBtn  li.navWeb a span,
#header._fixed #headerBtn  li.navLine a span { display: none; }
#header #headerBtn  li.navTel a { align-items: center; font-family: brandon-grotesque, sans-serif; font-size: 1.53rem; font-weight: 500; line-height: 48px; transition: 0.2s ease; }
#header._fixed #headerBtn  li.navTel a { font-size: 1.4rem; }
#header #headerBtn  li.navTel a span { margin-right: 0.25em; font-size: 0.72em; }

@media only screen and (min-width: 1280px) { /* 1280px以上 */
#header #headerBtn li a:hover { background-color: #21ade5; color: #fff; }
}

@media only screen and (max-width: 1279px) { /* 768px最適化 */
#header #headerBtn { display: none; }
}

@media only screen and (max-width: 767px) { /* 414px最適化 */ 
}

@media only screen and (max-width: 413px) { /* 320px最適化 */ 
}

/* navigation open
------------------------------------------------------------------------*/
#header #navOpen { display: block; }
#header #navOpen a { display: block; position: relative; width: 60px; height: 60px; background-color: #21ade5; border-radius: 50%; }
#header._fixed #navOpen a { width: 44px; height: 44px; }
#header #navOpen span { display: block; position: absolute; top: 29px; left: 19px; height: 2px; width: 21px; background-color: #fff; transition: 0.4s ease; }
#header._fixed #navOpen span { top: 21px; left: 11px; }
#header #navOpen span::before, #navOpen span::after { display: block; position: absolute; height: 2px; content: ""; transition: 0.4s ease; }
#header #navOpen span::before { left: 0; top: -7px; width: 21px; background-color: #fff; }
#header #navOpen span::after { left: 5px; top: 7px; width: 16px; background-color: #fff; }

@media only screen and (max-width: 1279px) { /* 768px最適化 */
#header #navOpen a { width: 44px; height: 44px; }
#header #navOpen span { top: 21px; left: 11px; }
}

@media only screen and (max-width: 767px) { /* 414px最適化 */ 
}


/*========================================================================
	MAIN NAVIGATION
========================================================================*/

#mainNav { display: none; position: fixed; left: 0; top: 0; z-index: 3; width: 100vw; height: 100vh; background-color: #21ade5; }
#mainNav #navClose { display: block; position: absolute; top: 40px; right: 40px; }
#mainNav #navClose a { display: block; position: relative; width: 60px; height: 60px; background-color: #fff; border-radius: 50%; }
#mainNav #navClose span { display: block; position: absolute; top: 29px; left: 32px; height: 2px; width: 0; background-color: #21ade5; }
#mainNav #navClose span::before,
#mainNav #navClose span::after { display: block; position: absolute; height: 2px; content: ""; }
#mainNav #navClose span::before { left: -13px; top: 0; width: 21px;  background-color: #21ade5; transform: rotate(225deg); }
#mainNav #navClose span::after { left: -13px; top: 0; width: 21px;  background-color: #21ade5; transform: rotate(-225deg); }
#mainNav ul { flex-direction: column; position: absolute; top: 50%; left: 50%; width: calc(100vw - 400px); transform: translate(-50%, -50%); border-top: 2px solid #e4f0f6; }
#mainNav ul li { border-bottom: 2px solid #e4f0f6; }
#mainNav ul li:not(:first-child) { margin-left: 0; }
#mainNav ul li a { display: block; padding: 0.75em; color: #fff; font-size: 1.7rem; font-weight: bold; letter-spacing: 0.1em; text-align: left; }
#mainNav ul li a:hover { color: #fff; }
#mainNav ul li a span { position: relative; top: -0.125em; display: inline-block; margin-left: 1em; font-family: brandon-grotesque, sans-serif; font-size: 0.63em; font-weight: 500; }

@media only screen and (min-width: 1280px) { /* 1280px以上 */
}

@media only screen and (max-width: 1439px) { /* 1280px最適化 */ 
}

@media only screen and (max-width: 1279px) { /* 1024px最適化 */
#mainNav #navClose { top: 20px; }
#mainNav #navClose a { width: 37px; height: 37px; }
#mainNav #navClose span { top: 18px; left: 21px; width: 0; background-color: #21ade5; }
#mainNav ul { flex-direction: column; border-top: 2px solid #e4f0f6; }
#mainNav ul { width: calc(100vw - 200px); }
}

@media only screen and (max-width: 1023px) { /* 768px最適化 */
#mainNav ul { width: calc(100vw - 100px); }
}

@media only screen and (max-width: 767px) { /* 414px最適化 */ 
#mainNav #navClose { right: 20px; }
#mainNav ul { width: calc(100vw - 40px); }
#mainNav ul li a { padding: 0.75em; font-size: 1.54rem; }
}

@media only screen and (max-width: 413px) { /* 320px最適化 */
}

/*========================================================================
	common
========================================================================*/

/* section box
------------------------------------------------------------------------*/
.secBox { position: relative; margin: 0 20px; padding: 125px 0; }
#access.secBox { padding-bottom: 100px; }
.secBox._blue { background-color: #e4f0f6; }

@media only screen and (max-width: 1279px) { /* 768px最適化 */
.secBox { padding: 100px 0; }
#access.secBox { padding-bottom: 75px; }
}

@media only screen and (max-width: 767px) { /* 414px最適化 */ 
.secBox { margin: 0 10px; padding: 75px 0; }
#access.secBox { padding-bottom: 50px; }
}

@media only screen and (max-width: 374px) { /* 320px最適化 */ 
.secBox { padding: 65px 0; }
}

/* section title
------------------------------------------------------------------------*/
.secTitle { position: absolute; top: -30px; right: 0; left: 0; margin: 0 auto; }
.secTitle .title { font-size: 2.8rem; letter-spacing: 0.15em; line-height: 1.4; }
.secTitle .en { font-family: brandon-grotesque, sans-serif; font-size: 1.14rem; font-weight: 700; color: #21ade5; letter-spacing: 0.2em; }

@media only screen and (max-width: 767px) { /* 414px最適化 */ 
.secTitle { top: -21px; }
.secTitle .title { font-size: 2.31rem; }
.secTitle .en {  font-size: 1rem; }
}

@media only screen and (max-width: 413px) { /* 320px最適化 */ 
.secTitle .title { font-size: 2.08rem; }
}

/* col
------------------------------------------------------------------------*/
.colM { width: 1540px; margin: 0 auto; }
.colS { width: 1080px; margin: 0 auto; }

@media only screen and (max-width: 1919px) { /* 1440px最適化 */ 
.colM { width: 1260px; }
}

@media only screen and (max-width: 1439px) { /* 1280px最適化 */ 
.colM { width: 1080px; }
}

@media only screen and (max-width: 1279px) { /* 768px最適化 */ 
.colM { width: auto; margin: 0 40px; }
.colS { width: auto; margin: 0 40px; }
}

@media only screen and (max-width: 767px) { /* 414px最適化 */ 
.colM { margin: 0 25px; }
.colS { margin: 0 25px; }
}

@media only screen and (max-width: 413px) { /* 320px最適化 */ 
.colM { margin: 0 20px; }
.colS { margin: 0 20px; }
}

/*========================================================================
	MAIN VISUAL
========================================================================*/

#mainVisual { position: relative; margin-bottom: 75px; }
#mainVisual #catch { position: absolute; top: 40px; right: 15px; width: 50%; writing-mode: vertical-rl; -ms-writing-mode: tb-rl; font-size: 4.4rem; color: #fff; letter-spacing: 0.1em; text-align: left; white-space: nowrap; }
_:-ms-fullscreen, :root body #mainVisual #catch { z-index: 30; } /* IE11 */

@media only screen and (min-width: 1280px) { /* 1280px以上 */
#mainVisual #catch { transition: 0.6s ease; }
#mainVisual #catch._fadeOut { opacity: 0; transform: translateY(2vh); }
#mainVisual #catch._fadeIn { opacity: 1; transform: translateY(0); }
_:-ms-fullscreen, :root body #mainVisual #catch._fadeOut { transform: translateY(20px); }
_:-ms-fullscreen, :root body #mainVisual #catch._fadeIn { transform: translateY(0); }
}

@media only screen and (max-width: 1919px) { /* 1440px最適化 */ 
#mainVisual #catch { font-size: 3.86rem; }
}

@media only screen and (max-width: 1279px) { /* 1024px最適化 */
#mainVisual { margin-bottom: 0; padding-top: 80px; }
.ipad .sp-mask { height: calc(100dvh - 80px) !important; }
.ipad .sp-slide { height: calc(100dvh - 80px) !important; }
#mainVisual #catch { top: auto; bottom: 100px; right: auto; left: 40px; writing-mode: horizontal-tb; -ms-writing-mode: lr-tb; line-height: 1.5; }
}

@media only screen and (max-width: 1023px) { /* 768px最適化 */
#mainVisual #catch { left: 50px; font-size: 4.66rem; }
}

@media only screen and (max-width: 767px) { /* 414px最適化 */ 
.iphone .sp-mask { height: calc(100dvh - 80px) !important; }
.iphone .sp-slide { height: calc(100dvh - 80px) !important; }
#mainVisual #catch { bottom: 80px; left: 25px; font-size: 3.54rem; line-height: 1.4; }
}

@media only screen and (max-width: 413px) { /* 320px最適化 */ 
#mainVisual #catch { font-size: 3.08rem; line-height: 1.3; }
}

/*========================================================================
	ABOUT
========================================================================*/

#about { text-align: right; }
#about .colM { position: relative; }
#about .photo { width: 1170px; height: 720px; margin-left: auto; background: center / cover no-repeat url(../img/img_about.jpg); }
#about .textBox { position: absolute; top: 50%; left: 0; transform: translateY(-50%); text-align: left; }
#about .textBox .title { margin-bottom: 1em; font-size: 2.8rem; letter-spacing: 0.1em; line-height: 2; }
#about .textBox .text { font-size: 1.2rem; letter-spacing: 0.1em; line-height: 2.5; }
#about .textBox .text:not(:last-child) { margin-bottom: 0.9em; }

@media only screen and (max-width: 1919px) { /* 1440px最適化 */ 
#about { text-align: right; }
#about .photo { width: 77%; height: 620px; }
#about .textBox .title { font-size: 2.54rem; }
#about .textBox .text { font-size: 1.14rem; line-height: 2.3; }
}

@media only screen and (max-width: 1279px) { /* 768px最適化 */
#about .photo { height: 580px; }
}

@media only screen and (max-width: 767px) { /* 414px最適化 */ 
#about .photo { width: 70%; height: 260px; }
#about .textBox { position: static; transform: translateY(0); margin-top: -200px; padding-right: 3em; }
#about .textBox .title { font-size: 1.85rem; }
#about .textBox .text { font-size: 1.08rem; }
#about .textBox .text br { display: none; }
}

@media only screen and (max-width: 374px) { /* 320px最適化 */ 
#about .photo { width: 70%; height: 180px; margin-right: -20px; }
#about .textBox { margin-top: -60px; padding-right: 0; }
#about .textBox .title { font-size: 1.54rem; }
}

/*========================================================================
	SERVICE
========================================================================*/

/* service list
------------------------------------------------------------------------*/
.seviceListBox { display: flex; margin-bottom: 45px; }
.serviceList { display: flex; flex-wrap: wrap; align-content: flex-start; width: calc(((100% - 60px) / 3 * 2) + 30px); margin-right: 30px; }
.serviceList li { width: calc((100% - 30px) / 2); margin-bottom: 30px; padding: 0.6em 0; background-color: #21ade5; border-radius: 1.5em; font-size: 1.4rem; font-weight: bold; color: #fff; letter-spacing: 0.08em; }
.serviceList li:nth-child(2n-1) { margin-right: 30px; }
.serviceIll { position: relative; width: calc((100% - 60px) / 3); }
.serviceIll img { position: absolute; right: 0; bottom: 0; }

@media only screen and (max-width: 1279px) { /* 768px最適化 */
.seviceListBox { margin-right: -20px; }
.serviceList { width: calc((100% - 30px) / 9 * 5); margin-right: 30px; }
.serviceList li { width: calc((100% - 15px) / 2); margin-bottom: 15px; font-size: 1.16rem; }
.serviceList li:nth-child(2n-1) { margin-right: 15px; }
.serviceIll { position: relative; width: calc((100% - 30px) / 9 * 4); }
.serviceIll img { left: 0; width: 250px; margin: auto; }
}

@media only screen and (max-width: 767px) { /* 414px最適化 */ 
.seviceListBox { display: flex; flex-direction: column; margin-right: 0; margin-bottom: 30px; }
.serviceList { width: 100%; margin-right: 0; margin-bottom: 20px; }
.serviceList li { width: calc((100% - 15px) / 2); font-size: 1.08rem; }
.serviceIll { width: 100%; }
.serviceIll img { position: static; }
}

@media only screen and (max-width: 413px) { /* 320px最適化 */ 
.serviceList li { width: 100%; margin-bottom: 10px; }
.serviceList li:nth-child(2n-1) { margin-right: 0; }
}

/* service time
------------------------------------------------------------------------*/
.serviceTime { width: 100%; margin-bottom: 25px; background-color: #fff; border-top: 3px solid #21ade5; border-bottom: 3px solid #21ade5; }
.serviceTime tr { display: flex; justify-content: space-around; align-items: center; }
_:-ms-fullscreen, :root body .serviceTime tr { display: table-row; } /* IE11 */
.serviceTime th, .serviceTime td { padding: 1em; font-size: 1.2rem; }
.serviceTime tr:not(:last-child) { border-bottom: 3px dotted #21ade5; }
_:-ms-fullscreen, :root body .serviceTime th,
_:-ms-fullscreen, :root body .serviceTime td { display: table-cell; vertical-align: middle; } /* IE11 */
.serviceTime tr th:first-child { width: 15%; }
_:-ms-fullscreen, :root body .serviceTime tr th:first-child { width: 20%; } /* IE11 */
.serviceTime tr th br { display: none; }
.serviceNote { text-align: right; }
.serviceNote li { display: inline-block; font-size: 1.14rem;  }
.serviceNote li:first-child { margin-right: 1.5em; }
.serviceNote span { font-weight: bold; }

@media only screen and (max-width: 1279px) { /* 768px最適化 */
.serviceTime th, .serviceTime td { font-size: 1.08rem; }
.serviceTime tr th:first-child { width: 25%; }
.serviceNote li { font-size: 1.08rem;  }
}

@media only screen and (max-width: 767px) { /* 414px最適化 */ 
.serviceTime { margin-bottom: 15px; }
.serviceTime tbody { display: flex; }
.serviceTime tr { flex-direction: column; }
.serviceTime tr:nth-child(1) { width: 30%; }
.serviceTime tr:nth-child(2),
.serviceTime tr:nth-child(3) { width: 35%; }
.serviceTime tr:not(:last-child) { border-bottom: none; }
.serviceTime tr th:first-child { width: 100%; padding: 0.75em; }
.serviceTime th, .serviceTime td { width: 100%; padding: 0.75em; font-size: 1rem; }
.serviceTime th:not(:last-child), .serviceTime td:not(:last-child) { border-bottom: 1px solid #21ade5; }
.serviceTime tr th br { display: block; }
.serviceNote li { display: block; font-size: 1rem;  }
.serviceNote li:first-child { margin-right: 0; }
}

/*========================================================================
	FACILITY
========================================================================*/

/* facility main list
------------------------------------------------------------------------*/
#facility .lead { margin-bottom: 60px; font-size: 1.14rem; }
#facility .lead br { display: none; }
.facilityMainList { display: flex; flex-wrap: wrap; }
.facilityMainList li { width: calc((100% - 70px) / 2); margin-bottom: 70px; }
.facilityMainList li:nth-child(2n-1) { margin-right: 70px; }
.facilityMainList li .photo { margin-bottom: 20px; }
.facilityMainList li .text { font-size: 1.2rem; font-weight: bold; letter-spacing: 0.08em; }

@media only screen and (max-width: 1919px) { /* 1440px最適化 */ 
.facilityMainList li { width: calc((100% - 50px) / 2); margin-bottom: 50px; }
.facilityMainList li:nth-child(2n-1) { margin-right: 50px; }
}

@media only screen and (max-width: 1279px) { /* 768px最適化 */
#facility .lead { font-size: 1rem; }
.facilityMainList li { width: calc((100% - 40px) / 2); margin-bottom: 30px; }
.facilityMainList li:nth-child(2n-1) { margin-right: 40px; }
.facilityMainList li .photo { margin-bottom: 15px; }
.facilityMainList li .text { font-size: 1.08rem; }
}

@media only screen and (max-width: 1279px) { /* 768px最適化 */
#facility .lead { margin-bottom: 40px; }
.facilityMainList { padding-bottom: 20px; }
}

@media only screen and (max-width: 767px) { /* 414px最適化 */ 
#facility .lead { margin-bottom: 25px; }
#facility .lead br { display: block; }
.facilityMainList li { width: 100%; margin-bottom: 25px; }
.facilityMainList li:nth-child(2n-1) { margin-right: 0; }
}

/* facility slide
------------------------------------------------------------------------*/
.bx-wrapper { max-width: calc(100vw - 40px) !important; margin-bottom: 0 !important; }

@media only screen and (max-width: 1919px) { /* 1440px最適化 */ 
.bx-wrapper li { width: 300px !important; }
}

@media only screen and (max-width: 1279px) { /* 768px最適化 */
.bx-wrapper li { width: 230px !important; }
}

@media only screen and (max-width: 767px) { /* 414px最適化 */ 
.bx-wrapper { max-width: calc(100vw - 10px) !important; }
.bx-wrapper li { width: 200px !important; }
}

/*========================================================================
	DOCTOR
========================================================================*/

/* staff photo
------------------------------------------------------------------------*/
#doctor .photo { width: 100%; margin-bottom: 75px; }

@media only screen and (max-width: 1439px) { /* 1280px最適化 */ 
#doctor .photoWrap { width: auto; margin: 0 40px; }
}

@media only screen and (max-width: 1279px) { /* 768px最適化 */
#doctor .photoWrap { margin: 0 20px; }
}

@media only screen and (max-width: 767px) { /* 414px最適化 */ 
#doctor .photoWrap { margin: 0; }
#doctor .photo { margin-bottom: 40px; }
}

@media only screen and (max-width: 413px) { /* 320px最適化 */ 
}

/* doctor list
------------------------------------------------------------------------*/
.doctorList { display: flex; flex-wrap: wrap; }
.doctorList > li { position: relative; width: calc((100% - 120px) / 2); padding-top: 30px; text-align: left; }
.doctorList > li:nth-child(1), .doctorList > li:nth-child(2) { margin-bottom: 75px; }
.doctorList > li:nth-child(2n-1) { margin-right: 120px; }
.doctorList > li::before { display: block; position: absolute; top: 0; left: 0; width: 2.5em; height: 3px; background-color: #21ade5; content: ""; }
.doctorList .job { font-size: 1.14rem; font-weight: bold; line-height: 1.5; }
.doctorList .nameSet { margin-bottom: 1.25em; }
.doctorList .name { display: inline-block; margin-right: 0.5em; font-size: 2.07rem; letter-spacing: 0.08em; line-height: 1.5; }
.doctorList .kana { display: inline-block; font-size: 0.94rem; letter-spacing: 0.08em; vertical-align: 5px; line-height: 1.5; }
.doctorList .title { margin-bottom: 0.75em; display: inline-block; padding: 0 0.375em 0 0.75em; background-color: #21ade5; border-radius: 14px; font-size: 0.94rem; font-weight: normal; color: #fff; letter-spacing: 0.5em; }
.doctorList .career { margin-bottom: 0.75em; }
.doctorList .career th, .doctorList .career td { padding: 0.25em 0; font-size: 1rem; line-height: 1.6; }
.doctorList .career th { width: 7em; font-weight: normal; text-align: left; }
.doctorList .belong { padding-top: 0.25em; }
.doctorList .belong li { font-size: 1rem; line-height: 1.6; }

@media only screen and (max-width: 1919px) { /* 1440px最適化 */ 
.doctorList > li { width: calc((100% - 80px) / 2); }
.doctorList > li:nth-child(2n-1) { margin-right: 80px; }
}

@media only screen and (max-width: 1279px) { /* 768px最適化 */
.doctorList > li { width: calc((100% - 50px) / 2); }
.doctorList > li:nth-child(2n-1) { margin-right: 50px; }
.doctorList .career th { width: 7.5em; }
}

@media only screen and (max-width: 767px) { /* 414px最適化 */ 
.doctorList > li { width: 100%; padding-top: 20px; }
.doctorList > li:nth-child(2n-1) { margin-right: 0; }
.doctorList > li:nth-child(1), .doctorList > li:nth-child(2), .doctorList > li:nth-child(3) { margin-bottom: 30px; }
.doctorList .job { font-size: 1.08rem; }
.doctorList .name { font-size: 1.85rem; }
}

@media only screen and (max-width: 413px) { /* 320px最適化 */ 
.doctorList .job { font-size: 1rem; }
.doctorList .name { font-size: 1.77rem; }
}

/*========================================================================
	CONSULTATION
========================================================================*/

/* service time
------------------------------------------------------------------------*/
#consultation .serviceNote { margin-bottom: 75px; }

@media only screen and (max-width: 767px) { /* 414px最適化 */ 
#consultation .serviceNote { margin-bottom: 40px; }
}

/* calendar
------------------------------------------------------------------------*/
#calendar { float: left; width: calc(100% - (300px + 50px)); }
#calendar iframe { width: 100%; height: 500px; margin-bottom: 75px; }

@media only screen and (max-width: 1023px) { /* 768px最適化 */
#calendar { float: none; width: 100%; }
#calendar iframe { height: 440px; }
}

@media only screen and (max-width: 767px) { /* 414px最適化 */ 
#calendar iframe { height: 360px; margin-bottom: 40px; }
}

@media only screen and (max-width: 413px) { /* 320px最適化 */ 
#calendar iframe { height: 300px; }
}


/* facebook
------------------------------------------------------------------------*/
#fb { float: right; width: 300px; margin-bottom: 75px; }

@media only screen and (max-width: 1023px) { /* 768px最適化 */
#fb { float: none; width: 100%; }
}

@media only screen and (max-width: 767px) { /* 414px最適化 */ 
#fb { margin-bottom: 40px; }
}

/* reserve
------------------------------------------------------------------------*/
.reserve { display: flex; flex-direction: row-reverse; padding: 40px; background-color: #e4f0f6; }
.reserve .textBox { width: calc(65% - 20px); text-align: left; }
.reserve .textBox .title { font-size: 1.34rem; color: #21ade5; letter-spacing: 0.08em; line-height: 1.5; }
.reserve .textBox .title br { display: none; }
.reserve .textBox .tel { margin-bottom: 5px; line-height: 1.5; }
.reserve .textBox .tel a { font-family: brandon-grotesque, sans-serif; font-size: 3.6rem; font-weight: 500; color: #21ade5; letter-spacing: 0.08em; }
.reserve .textBox .tel a span { font-size: 0.56em; }
.reserve .reserveBtn { display: flex; margin-bottom: 20px; }
.reserve .reserveBtn  li { margin-right: 10px;}
.reserve .reserveBtn  li a { display: flex; align-items: center; height: 50px; padding: 0 25px; background-color: #fff; border-radius: 25px; font-size: 1.33rem; font-weight: bold; line-height: 1.3em; color: #21ade5; }
.reserve .reserveBtn  li a:hover { background-color: #21ade5; color: #fff; }
.reserve .reserveBtn  li a span  { display: block; padding-left: 10px; font-size: 0.93rem; font-weight: normal; letter-spacing: 0; line-height: 1em; }
.reserve .textBox .time { font-size: 1.07rem; line-height: 2; }
.reserve .textBox .time span { font-weight: bold; }
.reserve .reserveIll { position: relative; width: calc(35% - 20px); margin-right: 40px; }
.reserve .reserveIll img { position: absolute; right: 0; bottom: -10px; left: 0; margin: 0 auto; }

@media only screen and (max-width: 1919px) { /* 1440px最適化 */ 
.reserve .reserveIll img { width: 300px; }
}

@media only screen and (max-width: 1279px) { /* 1024px最適化 */
.reserve { padding: 35px 35px 35px 25px; }
.reserve .textBox { width: calc(65% - 15px); }
.reserve .textBox .title { font-size: 1.14rem; }
.reserve .textBox .tel a { font-size: 2.77rem; }
.reserve .reserveBtn  li a { height: 40px; padding: 0 20px; border-radius: 20px; font-size: 1.2rem; }
.reserve .reserveIll { width: calc(35% - 15px); margin-right: 30px; }
.reserve .reserveIll img { width: 250px; bottom: 0; }
}

@media only screen and (max-width: 1023px) { /*768px最適化 */
.reserve .textBox { width: calc(60% - 15px); }
.reserve .reserveBtn { flex-direction: column; }
.reserve .reserveBtn  li { margin-right: 0;}
.reserve .reserveBtn  li:first-child { margin-bottom: 8px; }
.reserve .reserveIll { width: calc(40% - 15px); }
.reserve .reserveIll img { bottom: 10px; }
}

@media only screen and (max-width: 767px) { /* 414px最適化 */ 
.reserve { flex-direction: column; padding: 30px; }
.reserve .textBox { width: 100%; margin-bottom: 25px; }
.reserve .textBox .title { font-size: 1.08rem; line-height: 1.7; }
.reserve .textBox .tel a { font-size: 2.7rem; letter-spacing: 0.06em; }
.reserve .reserveBtn  li a { height: 35px; padding: 0 15px; border-radius: 18px; font-size: 1.06rem; }
.reserve .reserveIll { width: 100%; margin-right: 0; }
.reserve .reserveIll img { position: static; }
.reserve .textBox .time { font-size: 1rem; }
}

@media only screen and (max-width: 413px) { /* 375px最適化 */ 
.reserve { padding: 25px; }
.reserve .textBox .title { font-size: 1rem; }
.reserve .textBox .tel a { font-size: 2.54rem; font-weight: 700; }
}

@media only screen and (max-width: 374px) { /* 320px最適化 */ 
.reserve .textBox .tel a { font-size: 2rem; }
}

/*========================================================================
	ACCESS
========================================================================*/

#access iframe { margin-bottom: 50px; width: 100%; height: 600px; border: 2px solid #e2e2e2; }
#access .address { margin-bottom: 0.5em; font-size: 1.34rem; }
#access .description { margin-bottom: 50px; font-size: 1.07rem; line-height: 2; }
#access .description .br1 { display: none; }
#access .btnMap a { display: block; padding: 0.5em 1em; background-color: #fff; border: 3px solid #21ade5; border-radius: 42px; font-size: 1.4rem; font-weight: bold; color: #21ade5; letter-spacing: 0.08em; transition: 0.4s ease; }
#access .btnMap a:hover { background-color: #21ade5; color: #fff; }

@media only screen and (max-width: 1919px) { /* 1440px最適化 */ 
#access iframe { height: 500px; }
}

@media only screen and (max-width: 1439px) { /* 1280px最適化 */ 
#access .mapWrap { width: auto; margin: 0 40px; }
}

@media only screen and (max-width: 1279px) { /* 768px最適化 */
#access .mapWrap { margin: 0 20px; }
#access iframe { margin-bottom: 30px; }
#access .address { font-size: 1.24rem; }
#access .description { margin-bottom: 30px; font-size: 1rem; line-height: 1.8; }
}

@media only screen and (max-width: 767px) { /* 414px最適化 */ 
#access .mapWrap { margin: 0; }
#access iframe { height: 300px; }
#access .description .br1 { display: block; }
#access .btnMap a { font-size: 1.24rem; }
}

@media only screen and (max-width: 413px) { /* 320px最適化 */ 
#access iframe { height: 240px; }
}

/*========================================================================
	FOOTER
========================================================================*/

#footer { overflow: hidden; position: relative; padding: 30px 40px; }

@media only screen and (max-width: 1279px) { /* 768px最適化 */
#footer { padding: 30px 40px 80px; }
}

@media only screen and (max-width: 767px) { /* 414px最適化 */ 
#footer { overflow: hidden; position: relative; padding: 30px 30px 80px; }
}

/* footer logo
------------------------------------------------------------------------*/
#footer #footerLogo { position: absolute; top: 30px; left: 40px; }

@media only screen and (max-width: 1919px) { /* 1440px最適化 */ 
#footer #footerLogo { width: 340px; }
}

@media only screen and (max-width: 1279px) { /* 768px最適化 */
#footer #footerLogo { position: static; width: 300px; margin-bottom: 15px; }
}

@media only screen and (max-width: 374px) { /* 320px最適化 */ 
#footer #footerLogo { width: 100%; }
}

/* footer info
------------------------------------------------------------------------*/
#footer #footerInfoBox { float: right; text-align: right; }
#footer #footerInfoBox .title { margin-bottom: 1em; font-size: 1.14rem; color: #b5b6b6; letter-spacing: 0.08em; white-space: nowrap; }
#footer #footerInfoBox .title::before { content: "〔"; margin: 0 0.5em 0 -0.5em; }
#footer #footerInfoBox .title::after { content: "〕"; margin: 0 -0.5em 0 0.5em; }
#footer #footerInfoBox .info { width: 26em; }
#footer #footerInfoBox .info li { display: inline-block; margin-left: 1em; font-size: 1rem; line-height: 2; white-space: nowrap; }
#footer #footerInfoBox .info li a { color: #000; }
#footer #footerInfoBox .info li span { font-weight: bold; }

@media only screen and (max-width: 1919px) { /* 1440px最適化 */ 
#footer #footerInfoBox .title { margin-bottom: 0.5em; }
}

@media only screen and (max-width: 1279px) { /* 768px最適化 */
#footer #footerInfoBox { float: none; text-align: left; }
#footer #footerInfoBox .title { display: none; }
#footer #footerInfoBox .info { width: 38em; }
#footer #footerInfoBox .info li { margin-left: 0; margin-right: 1em; letter-spacing: 0.05em; line-height: 1.8; }
}

@media only screen and (max-width: 767px) { /* 414px最適化 */ 
#footer #footerInfoBox .info { width: 100%; }
}

@media only screen and (max-width: 374px) { /* 320px最適化 */ 
#footer #footerInfoBox .info li { display: block; margin-right: 0; }
}

/* footer button
------------------------------------------------------------------------*/
#footer #footerBtn { display: none; }

@media only screen and (max-width: 1279px) { /* 768px最適化 */
#footer #footerBtn { display: flex; position: fixed; left: 20px; bottom: 0; width: calc(100vw - 40px); }
#footer #footerBtn  li.navTel { width: calc((100% - 20px) * 0.25) }
#footer #footerBtn  li.navWeb,
#footer #footerBtn  li.navLine { width: calc((100% - 20px) * 0.375) }
#footer #footerBtn  li:not(:last-child) { margin-right: 10px;}
#footer #footerBtn  li a { display: flex; flex-direction: column; justify-content: center; align-items: center; height: 60px; padding-top: 0.3em; border-top: 3px solid #21ade5; border-left: 3px solid #21ade5; border-right: 3px solid #21ade5; border-top-left-radius: 30px; border-top-right-radius: 30px; background-color: #fff; font-size: 1.33rem; font-weight: bold; color: #21ade5; line-height: 1em; }
#footer #footerBtn  li a span { display: block; padding-top: 0.2em; font-size: 1rem; font-weight: normal; letter-spacing: 0; }
}

@media only screen and (max-width: 767px) { /* 414px最適化 */ 
#footer #footerBtn { left: 10px; bottom: 0; width: calc(100vw - 20px); }
#footer #footerBtn  li.navTel { width: calc((100% - 10px) * 0.2) }
#footer #footerBtn  li.navWeb,
#footer #footerBtn  li.navLine { width: calc((100% - 10px) * 0.4) }
#footer #footerBtn  li:not(:last-child) { margin-right: 5px;}
#footer #footerBtn  li a { height: 50px; padding-top: 0.4em; border-top-left-radius: 25px; border-top-right-radius: 25px; font-size: 1.06rem; }
#footer #footerBtn  li a span { padding-top: 0.3em; font-size: 0.86rem; }
}

/* copyright
------------------------------------------------------------------------*/
#footer #copyright { position: absolute; bottom: 30px; left: 40px; font-family: brandon-grotesque, sans-serif; font-size: 1rem; font-weight: 700; text-align: left; }

@media only screen and (max-width: 1279px) { /* 768px最適化 */
#footer #copyright { display: none; }
}

/* pagetop
------------------------------------------------------------------------*/
#pageTop { position: absolute; bottom: -20px; left: 50%; width: 205px; margin: 0 auto; transform: translateX(-50%); transition: 0.2s ease; }
#pageTop a { display: block; background: center / contain no-repeat url(../img/pagetop_on.png); }
#pageTop a img { transition: 0.1s ease; }

@media only screen and (min-width: 1280px) { /* 1280px以上 */
#pageTop:hover { bottom: -15px; }
#pageTop a:hover img { opacity: 0; }
}

@media only screen and (max-width: 1919px) { /* 1440px最適化 */ 
#pageTop { bottom: -18px; width: 185px; }
#pageTop:hover { bottom: -13px; }
}

@media only screen and (max-width: 1279px) { /* 768px最適化 */
#pageTop { display: none; }
}

@media only screen and (max-width: 767px) { /* 414px最適化 */ 
}

/*========================================================================
	UTILITY
========================================================================*/

/* clearfix
------------------------------------------------------------------------*/
._clearfix:after { content: ""; display: block; clear: both; }

/* effect
------------------------------------------------------------------------*/
._effect { transition: 0.6s ease; }
._effectOut { opacity: 0; transform: translateY(3vh); }
._effectIn { opacity: 1; transform: translateY(0); }
_:-ms-fullscreen, :root body ._effectOut { transform: translateY(30px); } /* IE11 */
_:-ms-fullscreen, :root body ._effectIn { transform: translateY(0); } /* IE11 */


