@charset "UTF-8";
/* ------------------------------------------------------------------------------------
 リセット
------------------------------------------------------------------------------------ */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header,
menu, nav, output, ruby, section, summary,
time, mark, audio, video{
	zoom:1;	/* hasLayout in IE */
	margin:0;
	padding:0;
	border:0;
	outline:0;
	font:inherit;
	font-size:100%;
	font-weight:normal;
	font-style:normal;
	vertical-align:baseline;
	background:transparent;
	-webkit-text-size-adjust: 100%;
	word-break:break-all;
}
header, menu, nav, footer,
section,article, aside,
details, summary,
figure, figcaption{display:block;}
table{
	border-collapse:collapse;
	border-spacing:0;
}
::placeholder{
	color: #949292;
}
q, blockquote{quotes:none;}
q:before, q:after, blockquote:before, blockquote:after{
	content:"";
	content:none;
}
img{
	font-size:0;
	line-height:0;
	vertical-align:bottom;
	height:auto;
}
a{
	margin:0;
	padding:0;
	font-size:100%;
	vertical-align:baseline;
	background:transparent;
	color:#333;
}
a:focus{outline:none;}
a img{
	border:none;
	vertical-align:middle;
}
textarea{overflow:auto;}
label{cursor:pointer;}
.clearfix:after{
	display:block;
	visibility:hidden;
	content:".";
	clear:both;
	height:0;
	font-size:0;
	line-height:0;
}
* html .clearfix{zoom:1;}
*:first-child + html .clearfix{zoom:1;}
a{
	text-decoration:none;
}
b, strong, .bold{
	font-family: -apple-system, BlinkMacSystemFont, Roboto, "Segoe UI semibold", "Helvetica Neue", HelveticaNeue, YuGothic, "Yu Gothic", "Segoe UI", Verdana, Meiryo, sans-serif;
}
ul,ol{
	list-style-type:none;
}
/* ------------------------------------------------------------------------------------
 基本
------------------------------------------------------------------------------------ */

body{
  margin: 0;
  padding: 0;
  font-family:"Hiragino Sans", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "游ゴシック", YuGothic, "メイリオ", Meiryo, sans-serif;
}

section{
  width: 100%;
  margin: 0 auto;
}

div.inner{
  width: 100%;
  max-width:750px;
  margin: 0 auto;
	position: relative;
	z-index: 1;
	background: #fff;
}

.ttl-00{
  font-weight: bold;
  color: #071a54;
  font-size: 62px;
	padding-top: 40px;
}

.ttl-01 {
	color:#071a54;
  margin: 2rem auto 1.2rem;
  padding: 1rem;
  background-color: #f5f5f5;
  font-weight: bold;
  font-size: 32px;
}

.ttl-01:before {
    margin-right: 0.5rem;
    border-left: 10px solid;
    content: '';
		color:#071a54;
}

.span-yellow {
    color: #FFF;
    padding: 2px 25px;
    background-color: #505C7E;
    margin: 5px 0 0 0;
    display: inline-block;
    letter-spacing: 1px;
}

p.small{
	font-size: 18px;
	color:#35353C;
}

p.middle{
	font-size: 38px;
	color:#35353C;
	font-weight: bold;
}

h1 {font-size:26px;margin:0}
h2{font-size: 22px;font-weight: bold;color:#35353C;margin: 0;}
h3{font-size: 18px;font-weight: bold;color:#35353C;padding-top: 18px;}
a,p,th,td{font-size: 26px;line-height: 1.8;color:#35353C;}
span.middle{
	font-size: 58px;
	font-weight: 500;
	color: #174554;
}

@media screen and (max-width:750px){
h1 {font-size:calc(100vw / ( 750 / 42 ));}
h2 {font-size:calc(100vw / ( 750 / 36 ));}
a,p,th,td {font-size:calc(100vw / ( 750 / 32 ));}
.ttl-01 {
	color:#071a54;
  margin: 2rem auto 1.2rem;
  background-color: #f5f5f5;
  font-weight: bold;
  font-size:calc(100vw / ( 750 / 38 ))
}

.ttl-00{
  font-size:calc(100vw / ( 750 / 62 ))
}

h3{
	font-size: calc(100vw / ( 750 / 24 ));
	font-weight: bold;
}
p.small{
	font-size: calc(100vw / ( 750 / 24 ));
}
h2,p.middle{
	font-size: calc(100vw / ( 750 / 35 ));
	color:#35353C;
	font-weight: bold;
}

span.middle{
	font-size:calc(100vw / ( 750 / 55 ));
	font-weight: 500;
	color: #174554;
}

}


img{
    width: 100%;
    max-width: 750px;
    vertical-align: bottom;
}

.center{
  text-align: center;
}

.absolute{
    position: absolute;
}

.relative{
    position: relative;
}

.abs-center{
    left: 50%;
    transform: translateX(-50%);
}

li{
	list-style: none;
}

.bk_blue{
	background-color: #ddeefe;
}
.bk_purple{
	background-color: #ebeeff;
}
.bk_green{
	background-color: #ddf1f9;
}
.bk_gray{
	background-color: #f9f9f9;
}
.bk_white{
	background-color: #fff;
}

.pt_10{
	padding-top: 10px;
}

.pt_20{
	padding-top: 20px;
}
.pt_40{
	padding-top: 40px;
}
.pt_60{
	padding-top: 60px;
}

.pb_10{
	padding-bottom: 10px;
}
.pb_20{
	padding-bottom: 20px;
}
.pb_40{
	padding-bottom: 40px;
}
.pb_60{
	padding-bottom: 60px;
}
.mb_20{
	margin-bottom: 20px;
}
.mb_40{
	margin-bottom: 40px;
}

.sp {
	display: none;
}
.pc {
	display: block;
}

/* ------------------------------------------------------------------------------------
 ヘッダー
------------------------------------------------------------------------------------ */
#header {
	width: 100%;
	z-index: 300;
	position: fixed;
	top: 0;
	height: 60px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	/*background: rgba(255,255,255,0.8);*/
}
#header_logo {
	margin-left: 50px;
}
#header_logo .logo {
	line-height: 1;
	margin: 0;
	padding: 0;
	font-weight: 500;
	display: block;
}
#header_logo img {
	display: block;
	margin: 0 auto;
	width: 300px;
}

#header_button {
	font-size: 0;
	margin-left: auto;
}
#header_button a {
	-webkit-transition: all 0.35s ease;
	transition: all 0.35s ease;
	font-size: 18px;
	display: inline-block;
	height: 80px;
	line-height: 80px;
	padding-left: 60px;
	padding: 0 50px;
	background:url(../../24b/img/right_icon.svg) ,linear-gradient(to right, #d66d75, #e29587); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
	cursor: pointer;
	background-position: left 15px center ,1% 50%;
	color: #fff;
	background-size: 20px,200% auto;
  background-repeat: no-repeat;
  transition: all 0.3s ease-out;
  box-shadow: 3px 3px 6px #00000029;
  border-radius: 80px 0px 0px 90px;

}

.header{
	display:none;
}

@media screen and (max-width: 750px) {
#header {
	background: rgba(255,255,255,0.6);
}
#header_button a {
	padding: 0 20px;

}
#header_logo img {
	display: block;
	margin: 0 auto;
	width: calc(100vw / ( 750 / 365 ));
	margin-left: -10px;
}
#header_logo {
	margin-left: 10px;
	margin-top: 0px;
}

#header_button a {
	font-size:calc(100vw / ( 750 / 23 ));
	display: none;
}

}

/* ------------------------------------------------------------------------------------
 #fv
------------------------------------------------------------------------------------ */

.cta_button_fv_001 {
    animation: dokidoki 0.7s ease 0.8s infinite alternate;
    width: 80%;
		left: 0;
		right: 0;
    margin: 0 auto; /* 左右のマージンを自動で中央に配置 */
    mix-blend-mode: inherit;
		top: 45.5%;
}

.cta_button_fv_002 {
    animation: dokidoki 0.7s ease 0.8s infinite alternate;
    width: 80%;
		left: 0;
		right: 0;
    margin: 0 auto; /* 左右のマージンを自動で中央に配置 */
    mix-blend-mode: inherit;
		top: 95.2%;
}

.cta_button_fv_003 {
    animation: dokidoki 0.7s ease 0.8s infinite alternate;
    width: 80%;
		left: 0;
		right: 0;
    margin: 0 auto; /* 左右のマージンを自動で中央に配置 */
    mix-blend-mode: inherit;
		top: 90.1%;
}

.cta_button_fv_004 {
    animation: dokidoki 0.7s ease 0.8s infinite alternate;
    width: 80%;
		left: 0;
		right: 0;
    margin: 0 auto; /* 左右のマージンを自動で中央に配置 */
    mix-blend-mode: inherit;
		top: 83.0%;
}

.cta_button_fv_005 {
    animation: dokidoki 0.7s ease 0.8s infinite alternate;
    width: 80%;
		left: 0;
		right: 0;
    margin: 0 auto; /* 左右のマージンを自動で中央に配置 */
    mix-blend-mode: inherit;
		top: 85.68%;
}

.hige-gallery{
	width: 100%;
	left: 0;
	right: 0;
	margin: 0 auto; /* 左右のマージンを自動で中央に配置 */
	mix-blend-mode: inherit;
	top: 63.8%;
}

.swiper-wrapper{
	margin-bottom: 50px;
}

.swiper-slide img {
    width: 100%; /* 幅を100%に設定 */
    height: auto; /* 高さを自動で調整 */
}


/* ------------------------------------------------------------------------------------
 sec01
------------------------------------------------------------------------------------ */
.sec01 .inner{
	background-color: #16aafa !important;
	padding:0 0 30px;
}

.sec02 .inner{
	margin:0 auto;
	background-color: #16aafa;
}
.sec02 .inner-2{
	margin:0 auto;
	background-color: #e8e8e8;
	width:100%;
	max-width:750px;
}

.sec03 .inner{
	background-color: #e8e8e8;
	padding:0;
}

.sec04 .inner-w{
	background-color: #fff;
	padding:20px 0 0;
}
.sec04 .inner{
	background: #000;
    background: url("../../24b/img/fvbk-dots.png");
}

.sec04 .cta_button_fv {
    margin: -120px auto 0;
    animation: dokidoki 0.7s ease 0.8s infinite alternate;
    width: 96%;
	padding:0 0 60px;
}
.sec04 .text-sbox{
	color:#D1D1D1;
	margin:0 10px;
	padding:5px 30px 30px;
	font-size: 18px;
}

@media screen and (max-width:750px){
	.sec04 .cta_button_fv {
		margin: -60px auto 0;
		animation: dokidoki 0.7s ease 0.8s infinite alternate;
		width: 96%;
		padding:0 0 30px;
	}
	.sec04 .text-sbox{
		margin:0 3.5vw;
		padding:5px 0 30px;
		font-size: calc(100vw / ( 750 / 24 ));
	}
}


.sec06 .inner, .sec10 .inner, .sec11 .inner, .sec12 .inner{
	background: url("../img/bg01.png");
	margin:0 auto;
}
.sec02 .text-sbox{
	background-color:#fff;
	margin:0 25px;
	padding:5px 20px 30px;
}
@media screen and (max-width: 750px) {
	.sec02 .text-sbox{
		margin:0 3.34vw;
		padding:5px 10px 30px;
	}
}

.sec06 .box-wht{
	margin:0 30px 20px;
	background:#fff;
	padding:30px 10px 10px;
	box-shadow: 3px 3px 10px #000;
	text-align: center;
}
.sec06 .text02{
	font-size: 50px;
	font-weight: bold;
}

.sec06 .text03{
	color: #333333;
	font-size: 36px;
	padding: 10px 25px 20px;
}

.sec06 .text03 .span01{
	color: #333333;
	font-weight: bold;
	padding: 2px 20px;
	background-color: #fffe03;
	margin: 13px 0 0 0;
	display: inline-block;
	letter-spacing: 1px;
}

.sec06 .text03 .span02{
	color: #333333;
	font-weight: bold;
	padding: 2px 15px;
	background-color: #fffe03;
	margin: 13px 0 0 0;
	display: inline-block;
	letter-spacing: 1px;
}
@media screen and (max-width: 750px) {
	.sec06 .text02{
		font-size: 6vw;
	}
		.sec06 .text03{
		font-size: 7vw;
	}
}

.sec09{
	margin-bottom:-360px;
	z-index: -1;
}

.sec09 .inner{
	background-color: #e8e8e8;
background-image: linear-gradient(0deg, #e8e8e8 50%, #fff 80%);

	margin:0 auto;
	padding-bottom: 400px;
}
.box-wht2{
	margin:0px auto 60px;
	background:#fff;
	padding:30px 10px 10px;
	box-shadow: 0px 5px 15px 0px #888;
	text-align: center;
	width:660px;
}
@media screen and (max-width: 750px) {
	.box-wht2{
		margin:0px auto 60px;
		width:86%;
	}
}

.sec10 .container-txt{
	width:90%;
	margin:0 auto;
}

.sec11 .container-txt {
	background-color: white;
	color: black;
	width:90%;
	margin:0 auto;
	border-bottom: 1px solid #E7ECEF;
}
.sec11 .container-txt:last-child {
	border-bottom: none;
}

.sec11 .question {
	padding: 20px 50px 20px 20px;
	position: relative;
	display: flex;
	align-items: center;
	cursor: pointer;
	background: #1b2e66;
	color: #fff;
	font-size:  calc(1.125rem + ((1vw - 7.5px) * 0.5128));
	min-height: 55px;
}
.sec11 .q{
	font-size: 18px;
	font-weight: 500;
  line-height: 1.4;
  color: #FFF;
}
.sec11 .answer .a{
	font-size: 18px;
}

.sec11 .question::after {
	content: "\002B";
	font-size: 2.2rem;
	position: absolute;
	right: 20px;
	transition: 0.2s;
}

.sec11 .question.active::after {
	transform: rotate(45deg);
}

.sec11 .answercont {
	max-height: 0;
	overflow: hidden;
	transition: 0.3s;
}

.sec11 .answer {
	padding: 20px 20px 20px 20px;
  font-size: calc(1.125rem + ((1vw - 7.5px) * 0.5128));
  line-height: 1.6;
	background: #f4f4f5;
}

.sec12 h2{
	color: #fff;
	font-size:26px;
	font-weight:bold;
	padding: 30px 0px 0px;
}
.sec12 .small{
	color:#fff;
}



/* ------------------------------------------------------------------------------------
 CLINIC_sec06
------------------------------------------------------------------------------------ */
.sec06 .map{
  	width:90%;
	margin:0 auto;
  }

.sec06 .cont{
  	text-align: left;
  	background-color: #fff;
  }

.textbox{
  	line-height: 1.6;
		padding: 20px;
		background-position: 0% 0%;
		padding-bottom: 40px
  }

.sec06 .cont .textbox .text01{
  	padding: 0;
  }
.sec06 .cont .textbox .text01{
  	padding: 0;
  }

.wrapper {
	  width: 60%;
	}

.container {
	  background-color: white;
	  color: black;
	  border-radius: 0px;
	  box-shadow: 0px 3px 16px rgb(0,0,0,0.25);
	  margin: 20px 0;
	}

  @media screen and (max-width:750px){
	  .sp {
		  display: block;
	  }
	  .pc {
		  display: none;
	  }

	  .container {
	  	margin-left: 5%;
		margin-right: 5%;
		}
	}

.sec07 {
	background:#f5f5f5;
	padding-top:40px;
}

.sec07 .textbox{
		margin: 10px auto 0;
		padding: 0 15px 0 15px;
}

.sec07 .box03 .text03{
		padding: 0 0 0 22px;
}

.sec07 .box03 .text03 span{
		position: relative;
}

.sec07 .box03 .text03 span::before{
		content: "・";
		position:absolute;
		display: inline-block;
		left: -19px;
		top: -3px;
}

.sec07 .box04{
		padding: 0 0 40px 0;
}

.cta_button_fv {
    margin: 0 auto;
    animation: dokidoki 0.7s ease 0.8s infinite alternate;
    margin-top: 0px;
    width: 96%;
		cursor: pointer;
}

.cta_button_01{
	bottom: 69.2%;
  width: 100%;
  right: 0%;
  mix-blend-mode: inherit;
	cursor: pointer;
}

.cta_button_02{
	bottom: 5.0%;
  width: 100%;
  right: 0%;
  mix-blend-mode: inherit;
	cursor: pointer;
}

.bgb{
	background: #DDEEFE;
}



/* ------------------------------------------------------------------------------------
 アニメーション
------------------------------------------------------------------------------------ */
.reflection{
/*display:inline-block;
position:relative;*/
overflow:hidden;
}

.reflection:after {
content:"";
height:100%;
width:30px;
position:absolute;
top:-180px;
left:0;
background-color: #fff;
opacity:0;
-webkit-transform: rotate(45deg);
-webkit-animation: reflection 3s ease-in-out infinite;
}

@keyframes reflection {
0% { -webkit-transform: scale(0) rotate(45deg); opacity: 0; }
80% { -webkit-transform: scale(0) rotate(45deg); opacity: 0.5; }
81% { -webkit-transform: scale(4) rotate(45deg); opacity: 1; }
100% { -webkit-transform: scale(50) rotate(45deg); opacity: 0; }
}


/*声*/
.voice.active {
  animation-name: voice;
  animation-duration: 0.3s;
  animation-timing-function: ease;
  animation-iteration-count: 1;
  animation-fill-mode: forwards;
}
@keyframes voice {
  0% {
    transform: scale(0, 0) translate(0%, 0%);
    opacity: 0;
  }
  100% {
    transform: scale(1.0, 1.0) translate(0%, 0%);
    opacity: 1;
  }
}

.slideup.active {
  animation-name: slideUp;
  animation-duration: 1.0s;
  animation-timing-function: ease;
  animation-iteration-count: 1;
  animation-fill-mode: forwards;
}
@keyframes slideUp {
  0% {
    opacity: 0;
    transform: translateY(100px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

  /*FVブライトニング*/
  @keyframes bright {
    0% {
      filter: brightness(1.2);
    }
    100% {
      filter: brightness(1.0);
    }
  }
  .bright {
    animation-name: bright;
    animation-duration: 3s;
    animation-timing-function: ease;
    animation-iteration-count: 1;
    animation-fill-mode: forwards;
  }

  .poyopoyo_big.active {
    animation-name: poyopoyo_big;
    animation-duration: 3s;
    animation-timing-function: ease;
    animation-iteration-count: 1;
    animation-fill-mode: forwards;
  }
  @keyframes poyopoyo_big {
    0%, 20%,40%, 60%, 80% {
      transform: scale(1.0);
    }
   10%,30%,50% {
      transform: scale(1.25);
    }
  }
  .poyopoyo_small.active {
    animation-name: poyopoyo_small;
    animation-duration: 2s;
    animation-timing-function: ease;
    animation-iteration-count: 1;
    animation-fill-mode: forwards;
  }
  @keyframes poyopoyo_small {
    0%, 40%, 80% {
      transform: scale(1.0);
    }
    60%, 100% {
      transform: scale(0.9);
    }
  }

  /*cta*/

	.cta_button{
  	margin: 0 auto;
  	animation: dokidoki 0.7s ease 0.8s infinite alternate;
  	margin-top: 30px;
	width: 80%;
  }

  @keyframes dokidoki {
  	from {
  		transform: scale(0.9);
  	}

  	to {
  		transform: scale(1.0);
  	}
  }

/* ------------------------------------------------------------------------------------
 SWIPER
------------------------------------------------------------------------------------ */
.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction {
    left: 0;
    width: 100%;
}
.swiper-button-next,.swiper-rtl .swiper-button-prev {
    right: -30px!important;
    left: auto
}
.swiper-button-prev,.swiper-rtl .swiper-button-next {
    left: -30px!important;
    right: auto
}
:root {
    --swiper-theme-color: #184555!important;
}



/* ------------------------------------------------------------------------------------
 scroll
------------------------------------------------------------------------------------ */

a.scroll{
	display: none;
}

@media screen and (max-width: 750px) {
	a.scroll {
	 display: inline-block;
	 position: absolute;
	 right: 5px;
	 bottom: 5vh;
	 z-index: 2;
	 padding: 10px 10px 110px;
	 overflow: hidden;
	 color: #333;
	 font-size: 14px;
	 line-height: 1;
	 letter-spacing: .2em;
	 text-transform: uppercase;
	 text-decoration: none;
	 writing-mode: vertical-lr;
	}
	a.scroll::after {
	 content: '';
	 position: absolute;
	 bottom: 0;
	 left: 50%;
	 width: 1px;
	 height: 100px;
	 background: #333;
	}

	a.scroll::after {
	  animation: sdl 1.5s cubic-bezier(1, 0, 0, 1) infinite;
	}
}

@keyframes sdl {
  0% {
    transform: scale(1, 0);
    transform-origin: 0 0;
  }
  50% {
    transform: scale(1, 1);
    transform-origin: 0 0;
  }
  50.1% {
    transform: scale(1, 1);
    transform-origin: 0 100%;
  }
  100% {
    transform: scale(1, 0);
    transform-origin: 0 100%;
  }
}

/* ------------------------------------------------------------------------------------
 MODAL
------------------------------------------------------------------------------------ */



/* ------------------------------------------------------------------------------------
 バナー
------------------------------------------------------------------------------------ */



  /* ===== Modal ===== */
  .modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: grid;
    place-items: center; /* 縦・横とも中央 */
    padding: 12px;
  }

  /* 背景（黒透過） */
  .modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(252,250,244,0.55);/*rgba(0, 0, 0, 0.65);*/
    opacity: 0;
    transition: opacity 240ms ease;
    touch-action: manipulation;
  }

  /* 画像ボックス（下からスライドアップ） */
  .modal__panel {
    position: relative;
    width: min(100%, 500px);
    overflow: hidden;
    transform: translateY(24px);
    opacity: 0;
    transition: transform 280ms ease, opacity 280ms ease;
    box-shadow: 0 18px 50px rgba(0,0,0,0.35);
    background: #fff;
    touch-action: manipulation;
  }

  /* クリック遷移用（aタグ） */
  .modal__link {
    display: block;
    line-height: 0;
  }
  .modal__img {
    width: 100%;
    height: auto;
    display: block;
    opacity: 1;
  }

  .modal__close {
    position: absolute;
    top: 10px;
    right: 10px;
    width: 25px;
    height: 25px;
    border-radius: 999px;
    background: rgba(255,255,255,0.85);
    border: none;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }

  /* 共通 */
  .modal__close::before,
  .modal__close::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 12px;
    height: 1.5px;
    background: #333;
    border-radius: 2px;
    transform-origin: center;
  }

  /* 回転だけを分離 */
  .modal__close::before {
    transform: translate(-50%, -50%) rotate(45deg);
  }
  .modal__close::after {
    transform: translate(-50%, -50%) rotate(-45deg);
  }


  /* 開いた状態 */
  .modal.is-open .modal__backdrop {
    opacity: 1;
  }
  .modal.is-open .modal__panel {
    transform: translateY(0);
    opacity: 1;
  }

  /* 非表示（display:none相当） */
  .modal[hidden] {
    display: none;
  }

  /* 好みで：モーダル表示中の背面スクロール無効 */
  body.is-modal-open {
    overflow: hidden;
    touch-action: none;
  }

  /* CTAエリア */
  .modal__cta {
    display: flex;
    justify-content: center;
    padding: 14px 0 18px;
    background: #fff;
  }

  /* CTAボタン */
  .modal__ctaBtn {
    width: 90%;
    height: 48px;
    background: linear-gradient(135deg, #ff5a5f, #ff7a7f);
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    text-align: center;
    line-height: 48px;
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
  }

  /* タップ時のフィードバック */
  .modal__ctaBtn:active {
    transform: scale(0.97);
  }




/* ここから追加202304*/

/* ------------------------------------------------------------------------------------
 基本
------------------------------------------------------------------------------------ */

p.color-gray{
	color: #787878;
}

.inner-fv{
  width: 100%;
  max-width:750px;
  margin: 0 auto;
	z-index: 100;
	position: relative;
}

.bg-white{
	background: white;
}
.bg-qa{
	background:  #F5F9FC;
}


.txt-box {
margin: 0 auto;
padding:2em 1em 2em;
}


h2{font-size:100%;font-weight:400;}
h2{position:relative;vertical-align:middle;font-weight:500;letter-spacing:.05em;line-height:1.6;color:#333;}


section h2[data-eng]:after{
	padding-top: 4rem;
	opacity: .23;
	display: block;
	text-align: center;
	content: attr(data-eng) "";
	position: absolute;
	z-index: 1;
	top: 0;
	left: 0;
	right: 0;
	font-size: 8rem;
	font-family: 'Jost';
	font-weight: 300;
	line-height: 1;
	background: linear-gradient(to right,#FC979F 25%,#bcdef3 75%);
	-webkit-background-clip: text;
	color: rgba(255,255,255,0);
	white-space: normal;
}


section h2[data-eng].up{padding:4rem 0 0;margin-bottom:0.5rem;line-height:1.4; text-align: center;font-size: 28px;padding-top:8rem;}


.line {
        display: flex;
        align-items: center;
      }
.line::before {
             content:"";
             height: 1px;
             width: 20%;
             background-color: #333;
             }
/* ------------------------------------------------------------------------------------
 追従ロゴとCTA
------------------------------------------------------------------------------------ */
.fixed {
  position: fixed;
  z-index: 999;
  -webkit-transition: 0.5s all;
  transition: 0.5s all;
  display: none;
}

.fixed_logo {
  top: 0;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}
.fixed_logo img {
  width: 50%;
  -webkit-filter: drop-shadow(0 0 0.3rem rgba(0, 0, 0, 0.5));
          filter: drop-shadow(0 0 0.3rem rgba(0, 0, 0, 0.5));
}

.c-button {
    position: sticky;
    padding: 12px 8px 12px calc(8px + 0.1em);
    overflow: hidden;
    border-radius: 0px;
		background:
				no-repeat center 75%,
				linear-gradient(to right, #25aae1, #4481eb, #04befe, #3f86ed);
		background-size: calc(100vw / (1200 / 36)) auto,200% 100%;
    box-shadow: #00000059 0 5px 15px;
    color: #fff;
    font-weight: 700;
    font-size: 16px;
    letter-spacing: .1em;
    text-align: center;
    transition: .2s;
		display: none;
}

.link_btn a:after {
    content: "\f054";
    position: absolute;
    font-family: FontAwesome;
    display: inline-block;
    font-weight: normal;
    font-size: 140%;
    right: 10px;
    top: 65%;
    margin-top: -25px;
}

.shine{
  position: relative;
  overflow: hidden;
}

.shine::before{
  content: "";
  animation: shine 3s cubic-bezier(0.25, 0, 0.25, 1) infinite;
  background-color: #ffffff3b;
  width: 140%;
  height: 100%;
  transform: skewX(-45deg);
  top: 0;
  left: -160%;
  opacity: 0.5;
  position: absolute;
}

@keyframes shine{
  0% {
    left: -160%;
    opacity: 0;
  }
  70% {
    left: -160%;
    opacity: 0.5;
  }
  71% {
    left: -160%;
    opacity: 1;
  }
  100% {
    left: -20%;
    opacity: 0;
  }
}

.fix-cta {
  display: none;
  z-index: 10;
  right: 0;
  bottom: 6px;
  left: 0;
  width: 90%;
	max-width: 700px;
  margin: auto;
  padding-top: 20px;
  padding-bottom: 20px;
  text-align: center;
	cursor: pointer;
}

.fix-cta-text, .fix-cta-text02 {
  display: block;
  padding-left: .1em;
  line-height: 1;
  letter-spacing: .06em;
}

.fix-cta-text {
	font-size: 14px;
	font-weight:500;
}

.fix-cta-text02 {
	margin-top: 12px;
	font-size: 20px;
	font-weight:600;
}
.fix-cta-text02 span{
	color:yellow;
	font-weight:600;
}

@media screen and (min-width: 750px) {
	img.sp {
		display: none!important;
	}
}

/* ------------------------------------------------------------------------------------
 BACKGROUND
------------------------------------------------------------------------------------ */
.main-bg{
  width: 100%;
  height: 100vh;
  position: fixed;
  background: linear-gradient(to right, #e0eafc, #cfdef3); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
  z-index: 2;
  opacity: 0.8;
}
.bg-img{
  z-index: 1;
  position: fixed;
  top: 0;
  left: 0;
}
.bg-left-img{
  display: block;
  height: 100vh;
}

/* ------------------------------------------------------------------------------------
 フッター
------------------------------------------------------------------------------------ */
footer {
  position: relative;
  bottom: 0;
  left: 0;
  right: 0;
  background: #111;
  height: auto;
  width: 100vw;
	max-width: 750px;
  padding-top: 20px;
  color: #fff;
	margin: 0 auto;
	z-index: 9999;
}
footer a {
    text-decoration: underline;
}
.footer-content {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  text-align: center;
	position: relative;
}

.footer-content h3 {
  font-size: 2.1rem;
  font-weight: 500;
  text-transform: capitalize;
  line-height: 3rem;
}

.footer-content p ,a{
  max-width: 500px;
  /* margin: 10px auto; */
  line-height: 28px;
  font-size: 14px;
  color: #cacdd2;
}

.footer-bottom {
  background-color: #000;
  padding: 20px 0;
  position: relative;
	font-size: 12px;

}
.footer-bottom p {
  color: #fff;
  font-size: 16px;
  text-align: center;
}
.footer-bottom small {
  color: #fff;
  display: block;
  text-align: center;
}


/* ------------------------------------------------------------------------------------
 section01
------------------------------------------------------------------------------------ */
.clinic_info.box_container{padding-bottom:120px;}

.clinic_info{padding-left:20px;padding-right:20px;box-sizing:border-box;}
.clinic_info_data{margin:0 auto;border-collapse:separate;border-spacing:0;background:#fff;}
.clinic_info_data th,.clinic_info_data td{display:block;width:100%;box-sizing:border-box;text-align:left;}
.clinic_info_data th{color:#181818;font-weight:500;background:#D0E6FD;padding:20px 50px 20px 20px;border:none;}
.clinic_info_data td{color: #181818;font-weight:normal;;background:#fff;text-align:left;letter-spacing:0.03em;padding:30px 20px;border:none;}
a.gmap{height:52px;background:#A99780;color:#fff;font-size:calc(0.875rem + ((1vw - 7.5px) * 0.3419));font-weight:400;line-height:48px;text-align:center;margin-top:.5em;display:block;box-sizing:border-box;}
a.gmap i{display:inline-block;margin-right:.3em;}


.sec10 .container-txt {
	border-bottom: 1px solid #E7ECEF;
}
.sec10 .container-txt:last-child {
	border-bottom: none;
}

.clinic {
	padding: 20px 50px 20px 20px;
	position: relative;
	display: flex;
	align-items: center;
	cursor: pointer;
	background: #1c3069;
	min-height: 45px;
}
p.q{
	font-weight: 500;
	line-height: 1.8rem;
  color: #FFF;
}

p.a{
  color: #181818;
  font-weight: normal;

}

.clinic::after {
	content: "\002B";
	font-size: 2.2rem;
	position: absolute;
	right: 20px;
	transition: 0.2s;
  color: #fff;
}

.clinic.active::after {
	transform: rotate(45deg);
}

.detailcont {
	max-height: 0;
	overflow: hidden;
	transition: 0.3s;
}

.detail {
	padding: 20px 20px 20px 20px;
  font-size: calc(1.125rem + ((1vw - 7.5px) * 0.5128));
  line-height: 1.5;
	background: #fff;
}

.clinic.active + .detailcont {
}

@media screen and (max-width:750px){
	.container-txt {
	margin-left: 0%;
	margin-right: 0%;
}
}
/* ------------------------------------------------------------------------------------
 よくある質問
------------------------------------------------------------------------------------ */

.container-txt {
	background-color: white;
	color: black;
	margin: 0;
}

.question {
	padding: 20px 50px 20px 20px;
	position: relative;
	display: flex;
	align-items: center;
	cursor: pointer;
	background: #3f8cf4;
	color: #fff;
	font-size:  calc(1.125rem + ((1vw - 7.5px) * 0.5128));
	min-height: 45px;
}
p.q{
	font-weight: 500;
  line-height: 1.2rem;
  color: #FFF;
}

.question::after {
	content: "\002B";
	font-size: 2.2rem;
	position: absolute;
	right: 20px;
	transition: 0.2s;
}

.question.active::after {
	transform: rotate(45deg);
}

.answercont {
	max-height: 0;
	overflow: hidden;
	transition: 0.3s;
}

.answer {
	padding: 20px 20px 20px 20px;
  font-size: calc(1.125rem + ((1vw - 7.5px) * 0.5128));
  line-height: 1.7;
	background: #f4f4f5;
}

.question.active + .answercont {
}

@media screen and (max-width:750px){
	.container-txt {
	margin-left: 0%;
	margin-right: 0%;
}
}




/* ------------------------------------------------------------------------------------
 アニメーション
------------------------------------------------------------------------------------ */

/*明るく*/
@keyframes bright {
	0% {
		filter: brightness(1.2);
	}
	100% {
		filter: brightness(1.0);
	}
}
.bright {
	animation-name: bright;
	animation-duration: 5s;
	animation-timing-function: ease;
	animation-iteration-count: 1;
	animation-fill-mode: forwards;
}

.map {
    position: relative;
    width: calc 100% + 5.33vw;
    padding-top: 93.3333%;
		margin-left: calc(0px - -0.34vw);
    margin-right: calc(0px - -0.34vw);
		margin-bottom: 20px;
}

@media screen and (min-width: 750px) {
    .map {
        margin:0;
        padding-top: 32.1691%;
				margin-bottom: 20px;
    }
}

.map iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
		max-width: 750px;
		max-height: 750px;
}


/* ------------------------------------------------------------------------------------
 BACKGROUND
------------------------------------------------------------------------------------ */
.main-bg{
  width: 100%;
  height: 100vh;
  position: fixed;
  background: linear-gradient(to right, #e0eafc, #cfdef3); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
  z-index: 1;
  opacity: 0.8;
}
.bg-img{
  z-index: 0;
  position: fixed;
  top: 0;
  left: 0;
}
.bg-left-img{
  display: block;
  height: 100vh;
}
