:root{
	--base-font: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;
	--sub-font: "游明朝", YuMincho, yu-mincho-pr6n, serif;
	--en-font: "游明朝", YuMincho, yu-mincho-pr6n, serif;
	--base-color: #595757;
	--sub-color01: #00205b; /* 青 */
	--sub-color02: #bea679; /* ゴールド */
	--sub-color03: #0096b1; /* 水色 */
	--sub-color04: #cf1126; /* 赤 */
	--bg-color01: #eff8fc; /* 薄い水色 */
	--bg-color02: #f8f7f6; /* 薄い灰色 */
	--white: #fff; /* 白色 */
	--gradation01: linear-gradient(90deg, rgba(49, 166, 214, 1) 0%, rgba(47, 162, 211, 1) 20.12%, rgba(40, 149, 202, 1) 40.98%, rgba(30, 129, 187, 1) 62.17%, rgba(15, 100, 167, 1) 83.45%, rgba(0, 32, 91, 1) 100%); /* 横グラデ */
	--gradation02: linear-gradient(0deg, rgba(0, 32, 91, 1) 0%, rgba(15, 100, 167, 1) 16.55%, rgba(30, 129, 187, 1) 37.83%, rgba(40, 149, 202, 1) 59.02%, rgba(47, 162, 211, 1) 79.88%, rgba(49, 166, 214, 1) 100%); /* 縦グラデ */
	--gradation03: linear-gradient(90deg, rgba(49,166,214,1) 0%, rgba(0, 32, 91, 1) 50%, rgba(49,166,214,1) 100%); /* ボタングラデ */
	--gradation04: linear-gradient(90deg, rgba(0, 32, 91, 1) 0%, rgba(15, 100, 167, 1) 16.55%, rgba(30, 129, 187, 1) 37.83%, rgba(40, 149, 202, 1) 59.02%, rgba(47, 162, 211, 1) 79.88%, rgba(49, 166, 214, 1) 100%); /* 横グラデ逆 */
	--gradation05: linear-gradient(0deg, rgba(49,166,214,1) 0%, rgba(0, 32, 91, 1) 50%, rgba(49,166,214,1) 100%); /* 縦グラデ折り返し */
	--gradation06: linear-gradient(0deg, rgba(190,166,121,1) 0%, rgba(229,223,206,1) 100%); /* ゴールド */
}

*{ box-sizing: border-box; }
html { font-size: 62.5%; }
body{
	font-family: var(--base-font);
	font-feature-settings: "palt";
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	color: var(--base-color);	
	font-size: 1.6rem;
	font-style: normal;
	font-weight: 400;
	line-height: 1.8;
	letter-spacing: 0.08em;
	text-align: justify;
}

.sub-font{ font-family: var(--sub-font); font-weight: 500; letter-spacing: .08em; }
.en-font{ font-family: var(--en-font); font-weight: 500; letter-spacing: .08em; }
h1,h2,h3,h4,h5,h6{ font-family: var(--sub-font); font-weight: 500; letter-spacing: .08em; }

/*** adobe使用フォント
font-family: yu-mincho-pr6n, sans-serif;
font-wight: 400;
***/

@media(min-width: 769px){ .sp{ display: none !important; } }

a{ transition: .5s; }
a:hover{ opacity: .6; }
br{ line-height: inherit; }
p{ line-height: 2; }
span, a, strong, small{ color: inherit; font-size: inherit; font-family: inherit; font-weight: inherit; letter-spacing: inherit; }

.wrap{ width: 800px; margin: 0 auto; position: relative; }
.wrap.midium{ width: 1000px; }
.row{ display: flex; justify-content: space-between; }

.linkwrap{ width: 100%; height: 100%; display: block; position: absolute; top: 0; left: 0; z-index: 10; }
.body-wrap{ overflow: hidden; position: relative; z-index: 0; }

.btn{ width: 35rem; max-width: 100%; height: 5rem; border-radius: 2.5rem; border: solid 1px; background: #fff; display: flex; justify-content: center; align-items: center; font-family: var(--sub-font); color: var(--sub-color01); position: relative; }
.btn span, a span.arrow{ width: 2.8rem; height: 2.8rem; border-radius: 100%; overflow: hidden; position: absolute; top: 50%; right: 1.8rem; transform: translateY(-50%); transition: .5s; }
.btn span:before, a span.arrow:before{ content: ''; width: 200%; height: 100%; background: var(--gradation03); position: absolute; left: 0; top: 0; z-index: -1; transition: .5s; }
.btn span:after, a span.arrow:after{ content: ''; width: 100%; height: 100%; background: url(../images/common/arrow01.svg) no-repeat center/1.6rem; position: absolute; top: 0; left: 0; }
.btn:hover{ opacity: 1; }
.btn:hover span, a:hover span.arrow{ transform: translateY(-50%) scale(1.1); }
.btn:hover span:before, a:hover span.arrow:before{ transform: translateX(-50%); }

.overlay{ width: 100vw; height: 100vh; position: fixed; top: 0; left: 0; z-index: 9970; cursor: pointer; opacity: 0; visibility: hidden; transition: .5s; }
.overlay.active{ opacity: .2; visibility: visible; }

nav{ width: 60rem; height: 100vh; background: #fff; position: fixed; top: 0; right: 0; z-index: 99; padding: 13.5rem 15rem 5rem; transition: .5s; opacity: 0; visibility: hidden; }
nav.active{ opacity: 1; visibility: visible; }
nav .gnav{ margin-bottom: 6.5rem; }
nav .gnav li{ font-weight: 700; line-height: 2.5; text-align: center; }
nav .logo{ display: table; margin: 0 auto 2.2rem; }
nav .address{ padding: 1.5rem 0; border-top: solid 1px var(--sub-color01); border-bottom: solid 1px var(--sub-color01); text-align: center; font-size: 1rem; line-height: 2; }

.info-box{ padding-bottom: 9.5rem; z-index: 1; }
.info-box:before{ content: ''; width: 100rem; height: 100%; background: #fff; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); z-index: -1; border-radius: 5rem; }
.info-box .left{ width: 35rem; }
.info-box .left .logo{ display: table; margin: 0 auto 2.5rem; }
.info-box .left h2{ font-size: 2.8rem; color: var(--sub-color01); text-align: center; line-height: 1.4; white-space: nowrap; margin-bottom: 2.4rem; }
.info-box .right{ width: 40rem; }
.info-box .right .map{ display: block; margin-bottom: 2.2rem; width: 100%; }
.info-box .right .address{ font-size: 1.4rem; margin-bottom: 1.8rem; }
.info-box .right .access-row ul li{ font-weight: 700; padding-left: 1em; position: relative; }
.info-box .right .access-row ul li:before{ content: '・'; position: absolute; left: 0; }
.info-box .right .access-row .btn-box{ width: 20rem; }
.info-box .right .access-row .btn-box .btn{ height: 4rem; padding-right: 2rem; }
.info-box .right .access-row .btn-box .btn + .btn{ margin-top: .8rem; }

.hour-table{ width: 35rem; margin-bottom: 1rem; }
.hour-table thead th{ background: var(--sub-color02); height: 5rem; border-radius: 2rem 2rem 0 0; font-size: 1.4rem; color: #fff; text-align: center; vertical-align: middle; }
.hour-table tbody th{ width: 9.4rem; height: 5rem; background: var(--bg-color02); text-align: center; vertical-align: middle;  font-size: 1.4rem; border-bottom: solid 1px var(--sub-color01); }
.hour-table tbody td{ font-size: 1.4rem; vertical-align: middle; padding: 0 1.5em; border-bottom: solid 1px var(--sub-color02); }
.hour-table + p{ font-size: 1.4rem; }

.treat-list01{ display: flex; flex-wrap: wrap; margin-bottom: 10rem; }
.treat-list01 a{ width: 30rem; margin-right: calc((100% - 30rem * 3) / 2); display: block; border-radius: 3rem; overflow: hidden; color: #fff; text-align: center; padding-bottom: 9.5rem; position: relative; z-index: 0; }
.treat-list01 a:nth-of-type(3n){ margin-right: 0; }
.treat-list01 a:before{ content: ''; width: 100%; height: 200%; background: var(--gradation05); position: absolute; top: 0; left: 0; z-index: -1; transition: .5s; }
.treat-list01 a:after{ content: ''; width: 2.8rem; height: 2.8rem; border-radius: 100%; background: url(../images/common/arrow02.svg) #fff no-repeat center/1.54rem; position: absolute; bottom: 5rem; left: 50%; transform: translateX(-50%); transition: .5s; }
.treat-list01 a img{ width: 100%; display: block; margin-bottom: 4.5rem; }
.treat-list01 a dl dt{ line-height: 1.6; margin-bottom: 1.4rem; }
.treat-list01 a dl dt span{ background: rgba(255, 255, 255, .2); display: table; margin: 0 auto; border-radius: 2em; padding: 0 1em; }
.treat-list01 a dl dt span + span{ margin-top: .5rem; }
.treat-list01 a dl dd{ font-size: 3.4rem; }
.treat-list01 a dl dd span{ border-bottom: solid 2px var(--sub-color02); padding-bottom: .1em; }
.treat-list01 a:hover{ opacity: 1; }
.treat-list01 a:hover:before{ transform: translateY(-50%); }
.treat-list01 a:hover:after{ transform: translateX(-50%) scale(1.1); }

.treat-list02{ display: flex; flex-wrap: wrap; }
.treat-list02 li{ margin-right: calc((100% - 30rem * 3) / 2); }
.treat-list02 li:nth-of-type(3n){ margin-right: 0; }
.treat-list02 li:nth-of-type(n+4){ margin-top: 2rem; }
.treat-list02 li a{ width: 30rem; height: 6.8rem; border-radius: 3.4rem; display: flex; align-items: center; position: relative; font-size: 2rem; color: var(--sub-color01); border: solid 1px; background: #fff; padding-left: 7.6rem; }
.treat-list02 li a img{ position: absolute; top: 50%; left: 2rem; transform: translateY(-50%); }
.treat-list02 li a:hover{ opacity: 1; }

.banner-box a{ width: 38rem; height: 10rem; background: #fff; border: solid 1px; border-radius: 2rem; display: flex; align-items: center; color: var(--sub-color01); padding-left: 17rem; position: relative; font-size: 1.8rem; line-height: 1.4; }
.banner-box a:before{ content: ''; width: 13rem; height: 14rem; background: no-repeat bottom center/contain; position: absolute; bottom: 0; left: 2.5rem; }
.banner-box a.tel:before{ background-image: url(../images/common/webp/resv-tel01.webp); }
.banner-box a.web:before{ background-image: url(../images/common/webp/resv-web01.webp); }
.banner-box a:hover{ opacity: 1; }

footer .bg-grad{ position: relative; z-index: 0; padding-top: 9rem; color: #fff; }
footer .bg-grad:before{ content: ''; width: 100%; height: calc(100% + 28rem); background: var(--gradation02); position: absolute; bottom: 0; left: 0; z-index: -1; border-radius: 4rem 4rem 0 0; }
footer .bg-grad .wrap{ flex-wrap: wrap; z-index: 0; padding-bottom: 9rem; }
footer .bg-grad .bg01{ position: absolute; bottom: -14rem; right: -8rem; z-index: -1; opacity: .05; }
footer .sitemap{ display: flex; padding-bottom: 5.6rem; position: relative; margin-bottom: 4rem; }
footer .sitemap:before{ content: ''; width: 100rem; height: 1px; background: #fff; position: absolute; left: 0; bottom: 0; }
footer .sitemap > ul + ul{ margin-left: 3.8rem; }
footer .sitemap > ul > li{ font-weight: 700; line-height: 2.125; }
footer .sitemap > ul > li .child li{ font-weight: 400; font-size: 1.4rem; line-height: 2; padding-left: 1em; position: relative; }
footer .sitemap > ul > li .child li:before{ content: '・'; position: absolute; left: 0; }
footer .sitemap > ul > li .row ul + ul{ margin-left: 3.4rem; }
footer .bg-grad .banner-box a + a{ margin-top: 4rem; }
footer .bg-grad p.copy{ line-height: 2.167; font-size: 1.2rem; }

.float-btn{ display: flex; position: fixed; top: 2.5rem; right: 11.5rem; z-index: 9981; align-items: center; }
.float-btn li + li{ margin-left: 2.4rem; }
.float-btn li.tel a{ display: block; font-size: 1.5rem; color: var(--sub-color01); line-height: 1; }
.float-btn li.tel a span span{ font-size: 2.8rem; letter-spacing: .15em; background: var(--gradation01); -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
.float-btn li.web a{ width: 15rem; height: 4rem; overflow: hidden; display: flex; align-items: center; justify-content: center; border-radius: 2rem; color: #fff; position: relative; z-index: 0; }
.float-btn li.web a:before{ content: ''; width: 200%; height: 100%; background: var(--gradation03); position: absolute; left: 0; top: 0; z-index: -1; transition: .5s; }
.float-btn li.web a span{ padding-left: 2.1rem; background: url(../images/common/icon-web01.svg) no-repeat center left/1.6rem; }
.float-btn li.web a:hover{ opacity: 1; }
.float-btn li.web a:hover:before{ transform: translateX(-50%); }

.menu-btn{ position: fixed; top: 3rem; right: 6rem; z-index: 9981; cursor: pointer; }
.menu-btn .inner{ width: 3.1rem; height: 1.7rem; position: relative; margin: 0 auto; }
.menu-btn .inner span{ width: 100%; height: 1px; background: #fff; position: absolute; left: 0; transition: .5s; }
.menu-btn .inner span:nth-of-type(1){ top: 0; }
.menu-btn .inner span:nth-of-type(2){ top: 50%; transform: translateY(-50%); }
.menu-btn .inner span:nth-of-type(3){ bottom: 0; }
.menu-btn.active .inner span:nth-of-type(1){ transform: translateY(7px) rotate(35deg); }
.menu-btn.active .inner span:nth-of-type(2){ opacity: 0; }
.menu-btn.active .inner span:nth-of-type(3){ transform: translateY(-9px) rotate(-35deg); }
.menu-btn > span{ display: block; text-align: center; font-size: 1rem; color: #fff; }
li.web small {
	font-size: 1px;
	position: absolute;
	top: 0;
}


@media(max-width: 768px){
	html{ font-size: 2.66vw; }
	body{ font-size: 1.3rem; -webkit-text-size-adjust: 100%; }
	p{ line-height: 2; }

	@media screen and (-webkit-min-device-pixel-ratio: 0) {
	    _::-webkit-full-page-media, _:future, :root .sub-font, .en-font, h1, h2, h3, h4, h5, h6{ letter-spacing: 0; }
	}

	.pc{ display: none !important; }

	.wrap{ width: 100%; padding-left: 2.5rem; padding-right: 2.5rem; }
	.wrap.midium{ width: 100%; }
	.row{ flex-wrap: wrap; }

	.btn{ font-size: 1.4rem; width: 27.5rem; height: 5rem; margin-left: auto; margin-right: auto; }
	.btn span, a span.arrow{ width: 2.5rem; height: 2.5rem; right: 1.5rem; }
	.btn span:after, a span.arrow:after{ background-size: 1.15rem; }

	nav{ width: 100vw; padding: 9rem 2.5rem 10rem; overflow: scroll; }
	nav .gnav{ margin-bottom: 4.25rem; }
	nav .gnav li{ font-size: 1.4rem; line-height: 2.143; }
	nav .logo{ margin-bottom: 1.6rem; }
	nav .logo img{ width: 17rem; }
	nav .address{ display: table; margin: 0 auto; }

	.info-box{ padding-bottom: 5rem; width: 32.5rem; }
	.info-box:before{ width: 100%; border-radius: 0 0 4rem 4rem; }
	.info-box .left{ width: 100%; margin-bottom: 3rem; }
	.info-box .left .logo{ width: 25rem; display: block; }
	.info-box .left .logo img{ width: 100%; }
	.info-box .left h2{ font-size: 2rem; letter-spacing: .16em; }
	.info-box .right{ width: 100%; }
	.info-box .right .map{ margin-bottom: 1.8rem; }
	.info-box .right .address{ font-size: 1.2rem; line-height: 1.5; margin-bottom: .9rem; }
	.info-box .right .access-row .btn-box{ width: 12rem; align-self: center; }
	.info-box .right .access-row .btn-box .btn{ font-size: 1.1rem; height: 3rem; }
	.info-box .right .access-row .btn-box .btn span{ width: 2rem; height: 2rem; right: .5rem; }
	.info-box .right .access-row .btn-box .btn + .btn{ margin-top: .5rem; }

	.hour-table{ width: 100%; margin-bottom: .4rem; }
	.hour-table thead th{ font-size: 1.2rem; height: 3.5rem; border-radius: 1.5rem 1.5rem 0 0; }
	.hour-table tbody th{ font-size: 1.2rem; width: 7.5rem; height: 3.5rem; }
	.hour-table tbody td{ font-size: 1.2rem; letter-spacing: .04em; padding: 0 1em; }
	.hour-table + p{ font-size: 1.2rem; }

	.treat-list01{ flex-wrap: wrap; margin-bottom: 5rem; }
	.treat-list01 a{ margin-right: 0; width: 100%; padding-bottom: 6.3rem; border-radius: 4rem; }
	.treat-list01 a + a{ margin-top: 2.5rem; }
	.treat-list01 a:after{ width: 2.5rem; height: 2.5rem; bottom: 2.5rem; }
	.treat-list01 a img{ width: 100%; height: 15rem; object-fit: cover; object-position: center; margin-bottom: 2.5rem; }
	.treat-list01 a dl dt{ font-size: 1.4rem; margin-bottom: .8rem; }
	.treat-list01 a dl dd{ font-size: 3rem; }

	.treat-list02{ justify-content: space-between; }
	.treat-list02 li{ margin-right: 0; }
	.treat-list02 li:nth-of-type(n+3){ margin-top: 1.5rem; }
	.treat-list02 li a{ width: 16rem; height: 5rem; font-size: 1.4rem; padding-left: 4.5rem; line-height: 1.357; }
	.treat-list02 li a img{ width: 3.5rem; left: .75rem; }
	.treat-list02 li a .arrow{ right: 1rem; }

	.banner-box a{ width:100%; height: 8.5rem; font-size: 1.4rem; padding-left: 11.8rem; border-radius: 1.5rem; margin-left: auto; margin-right: auto; }
	.banner-box a:before{ width: 10rem; height: 10.7rem; left: 1.5rem }

	footer .bg-grad{ padding-top: 4rem; }
	footer .bg-grad:before{ height: calc(100% + 60rem); border-radius: 2rem 2rem 0 0 ; }
	footer .bg-grad .wrap{ padding-bottom: 15rem; }
	footer .bg-grad .bg01{ width: 30rem; bottom: 30.5rem; right: -7.5rem; }
	footer .sitemap{ justify-content: center; flex-wrap: wrap; padding-bottom: 3.3rem; order: 1; margin-bottom: 1.7rem; }
	footer .sitemap:before{ width: 27.5rem; left: 50%; transform: translateX(-50%); }
	footer .sitemap > ul{ margin: 0 1.75rem; }
	footer .sitemap > ul + ul{ margin-left: 1.75rem; }
	footer .sitemap > ul:nth-of-type(n+3){ margin-top: 3rem; }
	footer .sitemap > ul > li .child li{ font-size: 1.2rem; }
	footer .sitemap > ul > li .row ul + ul{ margin-left: 1.75rem; }
	footer .bg-grad .banner-box{ order: 3; margin: 0 auto; width: 90%;}
	footer .bg-grad .banner-box a + a{ margin-top: 2.5rem; }
	footer .bg-grad p.copy{ order: 2; font-size: 1rem; text-align: center; width: 100%; margin-bottom: 4rem; }

/*	.float-btn{ top: auto; right: 0; bottom: 0; width: 100%; }*/
	.float-btn li{ width: 50%; }
	.float-btn li + li{ margin-left: 0; }
	.float-btn li.tel a{ width: 100%; height: 5rem; background: #fff; font-size: 1rem; display: flex; justify-content: center; align-items: center; border-radius: 2rem 0 0 0; border: solid 1px var(--sub-color03); }
	.float-btn li.tel a span span{ font-size: 1.8rem; letter-spacing: 0.1em; }
	.float-btn li.web a{ width: 100%; height: 5rem; border-radius: 0 2rem 0 0; font-size: 1.8rem; }
	.float-btn li.web a span{ padding-left: 2.3rem; background-size: 1.7rem; margin-top: 10px; }

	.menu-btn{ top: 1.2rem; right: 1.4rem; }	
	.menu-btn .inner{ width: 3.3rem; height: 1.2rem; margin-bottom: .2rem;margin-top: 1rem; }
	.menu-btn > span{ font-size: 1rem; }
	.menu-btn.active .inner span:nth-of-type(1){ top: 50%; transform: translateY(-50%) rotate(35deg); }
	.menu-btn.active .inner span:nth-of-type(3){ bottom: 50%; transform: translateY(50%) rotate(-35deg); }
    
    
    .float-btn{ top: auto; right: 0; bottom: 25px; width: 100%; }
    .float-btn2{ top: auto; right: 0; bottom: 0; width: 100%; position: fixed;background-color: #fff; text-align: center; font-weight: 700; z-index: 1000; border: solid 1px var(--sub-color03);}
	li.web small { position: absolute; top: 3px; }
    
    
}


/*20251126 TOPへ戻るボタン*/
a.totop {
    font-size: 0;
    width: 60px;
    height: 60px;
	border-radius: 100%;
    background: var(--gradation03);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
	position: fixed;
	bottom:3%;
	right: 1.5%;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-transition: .5s;
    transition: .5s;
	z-index: 999;
	opacity: 0 !important;
	visibility: hidden;
}
a.totop.active {
opacity: 1 !important;
	visibility: visible;}
a.totop:before{
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    right: 50%;
    bottom: 50%;
    left: 50%;
    width: 15px;
    height: 15px;
    margin-right: -8px;
    margin-left: -8px;
    margin-top: -5px;
    border-top: solid 3px #fff;
    border-right: solid 3px #fff;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
	transition: .5s;}

@media(max-width: 768px){
	a.totop {
		bottom:22vw;
		right:4vw;
		width: 45px;
    	height: 45px;
	}
	a.totop:before{
        width: 11px;
        height: 11px;
		margin-right: -7px;
    margin-left: -7px;
    margin-top: -4px;
	}
}


.l-policy {
  background: url(../images/common/l-policy-bg.jpg) no-repeat center top/cover;
  padding: 14rem 0 12rem 0;
  margin-top: 10rem;
  margin-bottom: 10rem;
  position: relative;
}
@media screen and (max-width: 768px) {
  .l-policy {
    padding: 3rem 1rem;
  }
}
.l-policy__photo01 {
  position: absolute;
  top: -16.6rem;
  left: 0;
  width: 33.7301587302vw;
  z-index: 3;
}
@media screen and (max-width: 768px) {
  .l-policy__photo01 {
    top: -4.8rem;
    width: 27.4rem;
  }
}
.l-policy__photo01 img {
  width: 100%;
  height: auto;
  border-radius: 0 2rem 2rem 0;
}
.l-policy__photo02 {
  position: absolute;
  bottom: 8rem;
  left: 6.8rem;
  width: 16.0052910053vw;
  z-index: 3;
}
@media screen and (max-width: 768px) {
  .l-policy__photo02 {
    width: 22.2rem;
    bottom: -6.8rem;
    left: -2.6rem;
    z-index: 4;
  }
}
.l-policy__photo02 img {
  width: 100%;
  height: auto;
  border-radius: 2rem;
}
.l-policy__photo03 {
  position: absolute;
  bottom: -18rem;
  right: 0;
  width: 23.544973545vw;
  z-index: 3;
}
@media screen and (max-width: 768px) {
  .l-policy__photo03 {
    width: 14.6rem;
    bottom: -5.2rem;
    z-index: 5;
  }
}
.l-policy__photo03 img {
  width: 100%;
  height: auto;
  border-radius: 2rem 0 0 2rem;
}
.l-policy__inner {
  border-radius: 2rem;
  background: var(--white);
  width: 120rem;
  margin: 0 auto;
  padding: 9rem 20rem;
  position: relative;
  z-index: 2;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .l-policy__inner {
    border-radius: 0.5rem;
    width: 100%;
    padding: 16.8rem 2.4rem 14.6rem 2.4rem;
  }
}
.l-policy__logo {
  display: flex;
  justify-content: center;
  margin-bottom: 3.2rem;
}
@media screen and (max-width: 768px) {
  .l-policy__logo {
    margin-bottom: 2.4rem;
  }
  .l-policy__logo img {
    width: 15rem;
    height: auto;
  }
}
.l-policy__title {
  position: relative;
  margin-top: 3rem;
  margin-bottom: 3rem;
  color: var(--sub-color01);
  text-align: center;
  font-family: var(--sub-font);
  font-size: 3.2rem;
  line-height: 1.5;
  letter-spacing: 0.09em;
}
@media screen and (max-width: 768px) {
  .l-policy__title {
    font-size: 2.4rem;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0.06em;
    white-space: nowrap;
    margin-bottom: 2.4rem;
  }
}

.l-policy__p strong {
  font-size: 1.7rem;
  font-weight: 700;
  letter-spacing: 0.05em;
}
.l-policy__btn {
  margin-top: 3.2rem;
  display: flex;
  justify-content: center;
}
@media screen and (max-width: 768px) {
  .l-policy__btn {
    margin-top: 2.4rem;
  }
}

.l-doctor {
  background: url(../images/common/l-doctor-bg.jpg) no-repeat center top/cover;
  padding: 24rem 0 0 0;
  position: relative;
  top: -12.5rem;
  margin-bottom: -12.5rem;
  z-index: 0;
}
@media screen and (max-width: 768px) {
  .l-doctor {
    background-image: url(../images/common/l-doctor-bg-sp.jpg);
    background-repeat: no-repeat;
    background-position: center top;
    padding: 15rem 0 0 0;
    top: -7.5rem;
    margin-bottom: -7.5rem;
  }
}
.l-doctor__title {
  margin-bottom: 6rem;
}
@media screen and (max-width: 768px) {
  .l-doctor__title {
    margin-bottom: 3rem;
  }
}
.l-doctor-grid {
  display: grid;
  grid-template-columns: 1fr 360px 75px 75px 450px 1fr;
  grid-template-rows: auto;
  gap: 0px 0px;
  grid-auto-flow: row;
}

@media screen and (max-width: 768px) {
  .l-doctor-grid {
    display: flex;
    flex-wrap: wrap;
  }
}
.l-doctor-grid__bgbox {
  grid-area: 1/3/2/7;
  border-radius: 3rem 0 0 0;
  background: var(--white) url(../images/common/l-doctor-grid-bgbox-mark.png) no-repeat bottom right -4rem/39.6rem auto;
}
@media screen and (max-width: 768px) {
  .l-doctor-grid__bgbox {
    display: none;
  }
}
.l-doctor-grid__imgbox {
  grid-area: 1/1/2/4;
  display: flex;
  align-items: center;
  position: relative;
}
@media screen and (max-width: 768px) {
  .l-doctor-grid__imgbox {
    width: calc(100% - 2rem);
    margin: 0 auto 0 0;
    z-index: 2;
  }
}
.l-doctor-grid__imgbox::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 50%;
  background: var(--white);
  z-index: -1;
}
@media screen and (max-width: 768px) {
  .l-doctor-grid__imgbox::after {
    content: none;
  }
}
.l-doctor-grid__imgbox img {
  width: 100%;
  height: auto;
}
.l-doctor-grid__txtbox {
  grid-area: 1/5/2/6;
  padding: 7.8rem 0;
  color: var(--sub-color01);
}
@media screen and (max-width: 768px) {
  .l-doctor-grid__txtbox {
    width: calc(100% - 1rem);
    margin: 0 0 -12rem auto;
    padding: 16rem 4.5rem 7.2rem 3.5rem;
    background: var(--white) url(../images/common/l-doctor-grid-bgbox-mark.png) no-repeat bottom 1.8rem right -5.6rem/24.6rem auto;
    position: relative;
    top: -12rem;
    z-index: 1;
  }
}
.l-doctor-grid__en {
  color: var(--sub-color01);
  font-family: var(--en-font);
  font-size: 1.8rem;
  line-height: 1;
  letter-spacing: 0.13em;
  text-transform: capitalize;
  margin-bottom: 1.6rem;
}
@media screen and (max-width: 768px) {
  .l-doctor-grid__en {
    text-align: center;
    font-size: 2.4rem;
    letter-spacing: 0.1em;
    margin-bottom: 0.6rem;
  }
}
.l-doctor-grid__subtitle {
  color: var(--sub-color01);
  margin-bottom: 3rem;
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  gap: 1rem;
}
@media screen and (max-width: 768px) {
  .l-doctor-grid__subtitle {
    margin-bottom: 1.6rem;
    justify-content: center;
    align-items: center;
    text-align: center;
    gap: 0;
  }
}
.l-doctor-grid__subtitle > * {
  width: 100%;
}
.l-doctor-grid__subtitle .name {
  font-family: var(--sub-font);
  font-size: 5.2rem;
  line-height: 1.5;
  letter-spacing: 0.09em;
}
@media screen and (max-width: 768px) {
  .l-doctor-grid__subtitle .name {
    font-size: 2.8rem;
    line-height: 1.3;
    letter-spacing: 0.08em;
  }
}
.l-doctor-grid__subtitle .job {
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 2.14;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 768px) {
  .l-doctor-grid__subtitle .job {
    font-size: 1.2rem;
    line-height: 2.5;
    letter-spacing: 0.08em;
  }
}
.l-doctor-grid__msg {
  margin-bottom: 1.6rem;
  color: var(--sub-color01);
  font-family: var(--sub-font);
  font-size: 2.4rem;
  line-height: 1.53;
  letter-spacing: 0.11em;
}
@media screen and (max-width: 768px) {
  .l-doctor-grid__msg {
    text-align: center;
    font-size: 2rem;
    line-height: 1.5;
    letter-spacing: 0.08em;
  }
}
.l-doctor-grid__btn {
  margin-top: 3rem;
}
@media screen and (max-width: 768px) {
  .l-doctor-grid__btn {
    margin-top: 1.6rem;
    display: flex;
    justify-content: center;
  }
}

.l-treatment {
  padding: 6rem 0 15rem 0;
}
@media screen and (max-width: 768px) {
  .l-treatment {
    padding: 4rem 2rem 5.4rem 2rem;
  }
}
.l-treatment__inner {
  width: 100rem;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .l-treatment__inner {
    width: 100%;
  }
}
.l-treatment__title {
  margin-bottom: 8rem;
}
@media screen and (max-width: 768px) {
  .l-treatment__title {
    margin-bottom: 4rem;
  }
}

.l-first {
  display: grid;
  grid-template-columns: 1fr 380px 100px 40px 480px 1fr;
  grid-template-rows: 80px auto 80px;
  gap: 0px 0px;
  grid-auto-flow: row;
  position: relative;
  z-index: 2;
}

@media screen and (max-width: 768px) {
  .l-first {
    display: flex;
    flex-wrap: wrap;
    flex-direction: column-reverse;
  }
}
.l-first__bgbox {
  grid-area: 1/1/3/5;
  border-radius: 0 2rem 2rem 0;
  background: linear-gradient(90deg, #295391 2.14%, #3E9CD5 57.56%, #8FC8E6 97.16%);
}
@media screen and (max-width: 768px) {
  .l-first__bgbox {
    display: none;
  }
}
.l-first__imgbox {
  grid-area: 2/4/4/7;
}
@media screen and (max-width: 768px) {
  .l-first__imgbox {
    width: 100%;
  }
}
.l-first__imgbox img {
  width: 100%;
  height: 40.8rem;
  object-fit: cover;
  object-position: top center;
  border-radius: 2rem 0 0 2rem;
}
@media screen and (max-width: 768px) {
  .l-first__imgbox img {
    height: auto;
    border-radius: 0;
  }
}
.l-first__txtbox {
  grid-area: 2/2/3/3;
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  justify-content: center;
  gap: 2rem 0;
  color: var(--white);
  padding: 0 0 8rem 0;
}
@media screen and (max-width: 768px) {
  .l-first__txtbox {
    background: linear-gradient(90deg, #295391 2.14%, #3E9CD5 57.56%, #8FC8E6 97.16%);
    padding: 3rem 2rem;
    gap: 0;
  }
}
.l-first__txtbox > * {
  width: 100%;
}
.l-first__title {
  font-family: var(--sub-font);
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.53;
  letter-spacing: 0.11em;
  display: flex;
  align-items: center;
  gap: 0.4rem;
}
@media screen and (max-width: 768px) {
  .l-first__title {
    text-align: center;
    font-size: 2rem;
    line-height: 1.5;
    letter-spacing: 0.1em;
    flex-wrap: wrap;
    flex-direction: column;
    align-items: center;
    gap: 0.8rem;
    margin-bottom: 2.4rem;
  }
}
.l-first__subtitle {
  font-size: 1.7rem;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .l-first__subtitle {
    border-radius: 10rem;
    background: var(--white);
    padding: 2.4rem;
    text-align: center;
    color: #291901;
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 2;
    letter-spacing: 0.06em;
    margin-bottom: 1.6rem;
  }
}
.l-first__subtitle span {
  font-size: 2.6rem;
  line-height: 1;
}
@media screen and (max-width: 768px) {
  .l-first__subtitle span {
    font-size: 2rem;
    line-height: 1.6;
    letter-spacing: 0.05em;
  }
}
.l-first__p {
  font-size: 1.3rem;
  font-weight: 400;
  line-height: 1.73;
  letter-spacing: 0.05em;
}
.l-bg01 {
  background: url(../images/common/l-bg01.jpg) no-repeat left top/cover;
  position: relative;
  top: -8rem;
  margin-bottom: -8rem;
}
@media screen and (max-width: 768px) {
  .l-bg01 {
    background: url(../images/common/l-bg01-sp.jpg) no-repeat left top/cover;
    position: static;
    margin-bottom: 0;
  }
}

.p-cardS {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  gap: 2.2rem 4rem;
  margin-top: 8rem;
}
@media screen and (max-width: 768px) {
  .p-cardS {
    gap: 1.6rem 0.4rem;
    margin-top: 5rem;
  }
}
.p-cardS__item {
  width: calc((100% - 20rem) / 6);
}
@media screen and (max-width: 768px) {
  .p-cardS__item {
    width: calc((100% - 0.8rem) / 3);
  }
}
.p-cardS__link {
  background: #E4F4FE;
  border: 2px solid transparent;
  width: 100%;
  height: auto;
  aspect-ratio: 1/1;
  border-radius: 50%;
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  gap: 0.4rem 0;
}
.p-cardS__link:hover {
  border: 2px solid var(--main-dark);
}
@media screen and (max-width: 768px) {
  .p-cardS__link img {
    width: 3.4rem;
    height: auto;
  }
}
.p-cardS__link h3 {
  color: var(--sub-color01);
  font-family: var(--sub-font);
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 2.13;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 768px) {
  .p-cardS__link h3 {
    font-weight: 500;
    letter-spacing: -0.08em;
  line-height: 1.1;
  }
}

	
	
.p-cardL {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 5rem;
}
@media screen and (max-width: 768px) {
  .p-cardL {
    gap: 2.2rem;
  }
}
.p-cardL__item {
  width: calc((100% - 5rem) / 2);
}
@media screen and (max-width: 768px) {
  .p-cardL__item {
    width: 100%;
  }
}
.p-cardL__link {
  border-radius: 2rem;
  background: #E4F4FE;
  display: block;
  width: 100%;
  overflow: hidden;
  transition: box-shadow 0.3s ease;
}
.p-cardL__link:hover {
  box-shadow: 0 0 0 2px var(--main-dark);
}
.p-cardL__imgbox {
  width: 100%;
}
.p-cardL__imgbox img {
  width: 100%;
  height: auto;
}
@media screen and (max-width: 768px) {
  .p-cardL__imgbox img {
    height: 18rem;
    object-fit: cover;
    object-position: top center;
  }
}
.p-cardL__txtbox {
  padding: 3rem 3.4rem 4rem 3.4rem;
}
@media screen and (max-width: 768px) {
  .p-cardL__txtbox {
    padding: 2.4rem 1.8rem 3rem 1.8rem;
  }
}
.p-cardL__subtitle {
  display: flex;
  align-items: stretch;
  gap: 2rem;
  margin-bottom: 1rem;
}
@media screen and (max-width: 768px) {
  .p-cardL__subtitle {
    gap: 1.5rem;
  }
}
.p-cardL__subtitle .left {
  width: 7.5rem;
  height: auto;
  aspect-ratio: 1/1;
  border-radius: 50%;
  background: linear-gradient(90deg, #295391 2.14%, #3E9CD5 57.56%, #8FC8E6 97.16%);
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  color: var(--white);
  font-family: var(--en-font2);
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}
@media screen and (max-width: 768px) {
  .p-cardL__subtitle .left {
    width: 6rem;
    height: 6rem;
    font-size: 1.1rem;
    letter-spacing: 0.1em;
  }
}
.p-cardL__subtitle .right {
  width: calc(100% - 9.5rem);
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  justify-content: center;
  gap: 0.5rem;
  color: var(--sub-color01);
}
@media screen and (max-width: 768px) {
  .p-cardL__subtitle .right {
    gap: 0;
    width: calc(100% - 7.5rem);
  }
}
.p-cardL__subtitle .right > * {
  width: 100%;
}
.p-cardL__subtitle .right p {
  font-size: 1.2rem;
  font-weight: 600;
  line-height: 1.87;
  letter-spacing: 0.05em;
}
.p-cardL__subtitle .right h3 {
  font-family: var(--sub-font);
  font-size: 2.4rem;
  font-weight: 500;
  line-height: 1.58;
  letter-spacing: 0.06em;
}
@media screen and (max-width: 768px) {
  .p-cardL__subtitle .right h3 {
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.1em;
  }
}