html {
	overflow-y: scroll;
	overflow-x: hidden;
	-ms-overflow-style: scrollbar;
	scroll-behavior: smooth;
}
:target { scroll-margin-top: 100px; }

html , html a , body { -webkit-font-smoothing: antialiased; }

html {
	font-size: 16px;
	-webkit-tap-highlight-color: transparent;
}

body {
	font-size: 0.95rem;
	font-family: 'Zen Kaku Gothic New', sans-serif;
	color: #4b4b4b;
	line-height: 1.6;
	overflow: hidden;
	font-weight: 500;
}

.font-m { font-family: 'Zen Old Mincho', serif; }
.font-n { font-family: 'Noto Sans JP', sans-serif!important; }
.font-zm { font-family: 'Zen Maru Gothic', sans-serif!important; }
.font-zk { font-family: 'Zen Kaku Gothic New', sans-serif!important; }

.imgc { display: block; margin: auto; }
.imgl { margin-right: 10px; float: left; }
.imgr { margin-left: 10px; float: right; }

/* Typography */

h1 {
	margin:0;
	padding:0;
	font-size:10px;
	text-align:left;
}

h2 , h3 , h4 , h5 , h6 {
	font-weight: 400;
	font-family: Montserrat, sans-serif;
	line-height: 1.2;
	color: #4b4b4b;
	margin-top: 0;
	margin-bottom: .5rem;
}

h2 , h3 , h4 , h5 , h6 { margin-bottom: 0.75rem; }

h2 a , h3 a , h4 a , h5 a , h6 a {
	color: #242424;
	transition-duration: 200ms;
	transition-property: all;
	transition-timing-function: cubic-bezier(0.7, 1, 0.7, 1);
}

h2 a:focus,
h2 a:hover,
h3 a:focus,
h3 a:hover,
h4 a:focus,
h4 a:hover,
h5 a:focus,
h5 a:hover,
h6 a:focus,
h6 a:hover {
	color: #a79576;
	transition-duration: 200ms;
	transition-property: all;
	transition-timing-function: cubic-bezier(0.7, 1, 0.7, 1);
}

h2 { font-size: 2rem; }
h3 { font-size: 1.75rem; }
h4 { font-size: 1.5rem; }
h5 { font-size: 1.25rem; }
h6 { font-size: 1rem; }

em , li {
	font-size: 1rem;
	font-weight: 300;
	color: #242424;
}

em > a , li > a { color: #242424; }

em > a:hover , li > a:hover { color: #a79576; }

small {	color: #656565; }

label {
	font-size: 0.8125rem;
	font-weight: 700;
	color: #242424;
	margin-bottom: .25rem;
}

i {	line-height: 1; }

img {
	max-width: 100%;
	height: auto;
}

p {
	font-size: 0.95rem;
	color: #4b4b4b;
	margin-top: 0;
	margin-bottom: 1rem;
}
@media screen and (max-width: 991px) {
p { font-size: 0.875rem; }
}

/* Links */

a {
	color: #333;
	text-decoration: none;
}

a:focus, a:hover {
	color: #584034;
	text-decoration: none;
/*
	opacity: 0.7;
	transition: 0.3s;
*/
}

a:focus { outline: none; }

.tel { color: #4f4f4f; }
.tel:hover { color: #aaa; transition: 0.3s; }

/*----------------------------------

  Selection

------------------------------------*/

::selection {
	color: #fff;
	background: #a79576;
	text-shadow: none;
}

::-webkit-selection {
	color: #fff;
	background: #a79576;
	text-shadow: none;
}

:active,
:focus {
	outline: none;
}

/*----------------------------------

  aisis

------------------------------------*/

header { 
	position: fixed;
	height: 70px;
	width: 100vw;
	z-index: 999; 
	background: rgba(255,255,255,1.00);
}
header .row { margin: 0!important; }

.hbg {
	position: fixed!important;
	transition-duration: 300ms;
}
@media screen and (max-width:991px) {
.hbg { position: relative!important; }
}

.disc {
	list-style: disc!important;
	font-family: 'Noto Sans JP', sans-serif!important;
	color: #45340C;
}

.disc li {
	margin-bottom: .5em;
	font-weight: 500;
	font-size: 0.94rem;
}
.disc li:last-child { margin-bottom: 0!important; }
.disc2 li {
	margin-bottom: .2em;
	font-weight: 500;
	font-size: 0.94rem;
}

.flc1::first-letter { color: #a890c5; }
.flc2::first-letter { color: #a63a87; }
.flc3::first-letter { color: #dbcb9a; }

.padding-b-cus { padding-bottom: 15px; }
.padding-b-cus2 { padding-bottom: 20px; }
@media screen and (max-width:580px) {
.padding-b-cus2 { padding-bottom: 0px; }
}

hr {
	border-top: 1px solid #ccc;
	border-bottom: 2px solid #fff;
}

.marker { background: linear-gradient(transparent 70%, #F6FF62 70%); }
.marker2 { background:linear-gradient(transparent 60%, #FFA53A 60%); }

.fontg1 { font-family: 'Noto Sans JP', sans-serif; }
.fontg2 { font-family: 'Noto Serif JP', serif; }
.fontg3 { font-family: 'Shippori Mincho', serif; }

.bg-check { background: url("../img/top/check.webp") top left / 65px; }

.flbox {
	display: -ms-flexbox;
	display: -webkit-box;
	display: -webkit-flex;
	display: flex;
	-ms-flex-wrap: wrap;
	-webkit-flex-wrap: wrap;
	flex-wrap: wrap;
}
.flend { align-self: flex-end; }
.flcenter { align-self: center; }

.tshadow { text-shadow: 0 0 5px rgba(0,0,0,0.8); }

.pc,.pc2,.pc3 { display: none!important; }
.sp,.sp2,.sp3 { display: inherit!important; }
@media (min-width: 580px) {
.pc { display: inherit!important; }
.sp { display: none!important; }
}
@media (min-width: 992px) {
.pc2 { display: inherit!important; }
.sp2 { display: none!important; }
}
@media (min-width: 1400px) {
.pc3 { display: inherit!important; }
.sp3 { display: none!important; }
}

/*----------------------------------

  Button

------------------------------------*/

.s-btn {
	display: block;
	text-align: center;
	vertical-align: middle;
	border: none;
	white-space: nowrap;
	touch-action: manipulation;
	cursor: pointer;
	user-select: none;
	transition-duration: 300ms;
	transition-property: all;
	transition-timing-function: cubic-bezier(0.7, 1, 0.7, 1);
}

.s-btn:focus, .s-btn:hover {
	text-decoration: none;
	transition-duration: 300ms;
	transition-property: all;
	transition-timing-function: cubic-bezier(0.7, 1, 0.7, 1);
}

.s-btn.focus { text-decoration: none; }

.s-btn:active, .s-btn.active {
	background-image: none;
	outline: 0;
}

.s-btn.disabled, .s-btn:disabled,
fieldset[disabled] .s-btn {
	cursor: not-allowed;
	opacity: .65;
}

.s-btn__element--left, .s-btn__element--right {
	display: table-cell;
	vertical-align: middle;
	text-align: left;
}

/* Sizes
------------------------------ */

.s-btn--xs {
	font-size: 0.75rem;
	font-weight: 400;
	padding: 0.5rem 1.25rem;
}

.s-btn--sm {
	font-size: 0.875rem;
	font-weight: 400;
	padding: 0.75rem 1.25rem;
}

.s-btn--md {
	font-size: 0.8125rem;
	font-weight: 400;
	padding: 1rem 2.5rem;
}

.s-btn-icon--md {
	font-size: 1rem;
	padding: 0.9375rem 1.5625rem 0.75rem;
}

/* color
------------------------------ */

.s-btn--primary-bg { color: #fff; background: #a890c5; }
.s-btn--primary-bg:focus, .s-btn--primary-bg:hover { color: #fff; background: #dbcb9a; }

.s-btn--primary-bg2 { color: #fff; background: #a63a87; }
.s-btn--primary-bg2:focus, .s-btn--primary-bg2:hover { color: #fff; background: #dbcb9a; }

.s-btn--primary-bg3 { color: #fff; background: #dbcb9a; }
.s-btn--primary-bg3:focus, .s-btn--primary-bg3:hover { color: #fff; background: #a63a87; }

.s-btn--dark-bg { color: #fff; background: #222; }
.s-btn--dark-bg:focus, .s-btn--dark-bg:hover { color: #fff; background: #a63a87; }

/*----------------------------------

  textbox

------------------------------------*/

.txtbox {
	background-color: #fff;
	padding: 20px 20px;
	width: 100%;
}
.txtbox2 {
	background-color: #fff;
	padding: 40px 40px;
}

@media only screen and (max-width:1200px){
.txtbox , .txtbox2 {
	background-color: #fff;
	padding: 15px 15px;
}
}

/*----------------------------------

  Footer

------------------------------------*/

.fitem {
	font-size: 12px;
	margin: -7px 0 -7px;
	color:#fff;
	text-align: center;
}

#footel{
	position: relative;
	margin:0;
	width:100%;
	font-weight:normal;
}

@media only screen and (max-width:991px){
#footel {
	z-index: 9999;
	margin:0;
	position: fixed;
    bottom:0;
	width:100%;
	padding:0;
}
}

.foot-d { display: inherit!important; }
@media (min-width: 990px) {
.foot-d { display: none!important; }
}

/* back-top
------------------------------ */

#back-top {
	position: fixed;
	bottom: 10vh;
	right: 3%;
	z-index: 9999;
}
#back-top a {
	width: 40px;
	height: 40px;
	background: #a63a87;
	display: block;
	color: #fff;
	text-align: center;
	line-height: 40px;
	border-radius: 50%;
	text-decoration: none;
}
#back-top a:hover {
	background: #dbcb9a;
	transition: 0.3s;
}

/*----------------------------------

  about

------------------------------------*/

.about {
	position: relative;
	background-image:
		linear-gradient(-25deg,rgba(168,144,197,0) 80%, rgba(168,144,197, 0.10) 80%, rgba(168,144,197, 0.10) 100%), 
		linear-gradient(25deg,rgba(168,144,197, 0) 80%, rgba(168,144,197, 0.10) 80%, rgba(168,144,197, 0.10) 100%);
	background-position: left -50px , right -50px ;
	background-repeat: no-repeat;
	background-color: #fff;
	z-index: 2;
}
@media only screen and (max-width:480px) {
.about {
	background-image:
		linear-gradient(-25deg,rgba(168,144,197,0) 91%, rgba(168,144,197, 0.10) 91%, rgba(168,144,197, 0.10) 100%), 
		linear-gradient(25deg,rgba(168,144,197, 0) 91%, rgba(168,144,197, 0.10) 91%, rgba(168,144,197, 0.10) 100%);
}
}

/*----------------------------------

  reason

------------------------------------*/

.reason { background: url("../img/top/reabg.webp") top center ; }

.point1 , .point2 , .point3 {
	position: relative;
	z-index: 1!important;
}
.point1::before , .point2::before , .point3::before {
	position: absolute;
	content: "";
	width: 45vw;
	height: 90%;
	top: 0;
	bottom: 0;
	margin: auto;
	right: 0;
	z-index: -1!important;
}

.point1::before { background: url("../img/top/rea1.webp")no-repeat center center / cover ; }
.point2::before { background: url("../img/top/rea2.webp")no-repeat center center / cover ; }
.point3::before { background: url("../img/top/rea3.webp")no-repeat center center / cover ; }

@media screen and (max-width: 480px) {
.point1::before , .point2::before , .point3::before { display: none; }
}

.ponum1 , .ponum2 , .ponum3 { position: relative; }
.ponum1::before , .ponum2::before , .ponum3::before {
	position: absolute;
	font-family:"Playwrite AU SA", cursive;
	font-size: 4rem;
	width: 100%;
	height: 50%;
	top: -80px;
	left: 0;
}
.ponum1::before { content: "Reason 1"; color:#E8C1DC; }
.ponum2::before { content: "Reason 2"; color:#E8C1DC; }
.ponum3::before { content: "Reason 3"; color:#E8C1DC; }

@media screen and (max-width: 1400px) {
.ponum1::before , .ponum2::before , .ponum3::before {
	font-size: 2.5rem;
	top: -50px;
}
}
@media screen and (max-width: 480px) {
.ponum1::before , .ponum2::before , .ponum3::before {
	font-size: 2rem;
	top: -235px;
}
}

/*----------------------------------

  skill up

------------------------------------*/

.skill {
	position: relative;
	background-image:
		linear-gradient(-25deg,rgba(168,144,197,0) 80%, rgba(168,144,197, 0.10) 80%, rgba(168,144,197, 0.10) 100%), 
		linear-gradient(25deg,rgba(168,144,197, 0) 80%, rgba(168,144,197, 0.10) 80%, rgba(168,144,197, 0.10) 100%);
	background-position: left , right ;
	background-repeat: no-repeat;
	background-color: #fff;
	z-index: 2;
}
@media only screen and (max-width:480px) {
.skill {
	background-image:
		linear-gradient(-25deg,rgba(168,144,197,0) 91%, rgba(168,144,197, 0.10) 91%, rgba(168,144,197, 0.10) 100%), 
		linear-gradient(25deg,rgba(168,144,197, 0) 91%, rgba(168,144,197, 0.10) 91%, rgba(168,144,197, 0.10) 100%);
	background-position: left -50px , right -50px ;
}
}

/*----------------------------------

  staff Q&A

------------------------------------*/

.voice1 , .voice2 {
	display: inline-block;
	position: relative; 
	margin: 0;
	padding: 10px 15px;
	max-width: 1100px;
	border-radius: 12px;
	
}
.voice1 { background: #fff; }
.voice2 { background: #ECE6F2; }
	
.voice1:after , .voice2:after {
	content: "";
	display: inline-block;
	position: absolute;
	top: 50%; 
	transform: translateY(-50%);
	border: 10px solid transparent;
	
}
.voice1:after { left: -25px; border-right: 20px solid #fff; }
.voice2:after { right: -25px; border-left: 20px solid #ECE6F2; }

.vposi {
	display: flex;
	justify-content: flex-end;
	align-items: center;
}

/*----------------------------------

  doctor

------------------------------------*/

table.com2 {
	margin:0 auto;
	width:100%;
	border-collapse:separate;
	border-spacing:4px;
	empty-cells:show;
}
.com2 th {
	font-size: 14px;
	letter-spacing: 1px;
    padding:10px;
    text-align:center;
	color: #fff;
}
.com2 td {
	font-size: 14px;
	color: #4b4b4b; 
	padding: 10px;
}
@media screen and (max-width:1024px){
.com2 th , .com2 td {
	font-size: 0.8rem;
    padding:10px 5px;
}
}

/*----------------------------------

  infiniteslide

------------------------------------*/

.infiniteslide { 
	overflow: clip;
    width: 100%;
	background: #fff;
}

.infiniteslide ul {
    display: flex;
    list-style: none;
    padding: 0;
    margin: 0;
    width: max-content;
    animation: infinity-loop 60s linear infinite; 
}
.infiniteslide ul li {
    width: 400px; /* 画像の幅を変えたら下の移動距離も変える */
    flex-shrink: 0;
}

.infiniteslide img {
    width: 100%;
    display: block;
}

@keyframes infinity-loop {
0% { transform: translateX(0); }
100% {
	/* 画像の幅 × 枚数分 = -px */
	transform: translateX(-3200px); 
}
}

/*----------------------------------

  Requirements

------------------------------------*/

table.com {
	margin:0 auto;
	width:100%;
    border-collapse:separate;
    border-spacing:4px;
    empty-cells:show;
}
.com th {
	font-size: 15px;
	letter-spacing: 0.1em!important;
    padding:15px 5px;
	color: #fff;
	font-weight: 600;
}
.com td {
	font-size: 14px;
	color: #4b4b4b; 
    padding:15px 5px 15px 10px;
	font-weight: 500;
	font-family: 'Noto Sans JP', sans-serif;
}
@media screen and (max-width:1024px){
.com th , .com td { font-size: 13px; }
}
@media screen and (max-width:480px){
.com th , .com td{
	width: 100%;
	display: block;
	text-align:left!important;
    padding:15px 5px 15px 10px;
}
}

/*----------------------------------

  form

------------------------------------*/

.e-form { height: 1900px; margin-bottom: -20px; }

@media screen and (max-width:991px){
.e-form { height: 1920px; margin-bottom: -40px;}
}
@media screen and (max-width:580px){
.e-form { height: 2100px; }
}

/*----------------------------------

  Q&A

------------------------------------*/

.cp_actab2 {
	position: relative;
	overflow: hidden;
	width: 100%;
	margin: 0 auto 10px;
	color: #ffffff;
}
.cp_actab2 input {
	position: absolute;
	z-index: -1;
	opacity: 0;
}
.cp_actab2 label {
	line-height: 2;
	position: relative;
	display: block;
	cursor: pointer;
	font-weight: 500!important;
	background-color: #FFFFFF;
	color: #333;
	font-family: 'Noto Sans JP', sans-serif!important;
}
.cp_actab2 th {
	padding:10px;
	background-color: #a890c5;
	width: 50px;
	text-align: center;
	color: #fff;font-family: 'Noto Sans JP', sans-serif!important;
}
@media screen and (max-width: 480px) {
.cp_actab2 th {	padding:10px 0px; width: 45px; }
}

.cp_actab2 td {	padding:10px 3em 10px 10px; }
@media screen and (max-width: 480px) {
.cp_actab2 td {	padding:10px 30px 10px 10px; }
}

.cp_actab2 .cp_actab-content2 {
	margin:0!important;
	overflow: hidden;
	max-height: 0;
	-webkit-transition: max-height 0.5s;
	transition: max-height 0.5s;
	background: #FFFFFF;
}
.cp_actab2 .cp_actab-content2 p {
	margin: 1em;
	color: #333!important;
	font-weight: 500!important;
}
.cp_actab2 input:checked ~ .cp_actab-content2 {	max-height: 500em; }
.cp_actab2 label::after {
	line-height: 4;
	position: absolute;
	top: 0;
	bottom:0;
	right: 0;
	display: block;
	width: 4em;
	height: 4em;
	-webkit-transition: all .5s;
	transition: all .5s;
	text-align: center;
	margin: auto;
}

@media screen and (max-width: 480px) {
.cp_actab2 label::after { width: 3em; }
}

.cp_actab2 input[type=checkbox] + label::after { content: '+'; }
.cp_actab2 input[type=checkbox]:checked + label::after { transform: rotate(315deg); }

/*----------------------------------

  reserve

------------------------------------*/

.res {
	background:url("../img/top/res.webp") no-repeat center right / cover;
	position: relative;
 }
@media only screen and (max-width: 480px) {
.res { background:url("../img/top/res_sp.webp") no-repeat center top / cover; }
}

/*----------------------------------

  info

------------------------------------*/

.time {
	width: 100%;
	margin: 0 auto 10px;
}
.time th {
	padding:10px 4px;
	word-break: break-all;
	font-weight: bold!important;
	text-align: center;
	white-space: nowrap;
	font-size: 16px!important;
	color:#fff;
}
.time td {
	padding:10px 4px;
	word-break: break-all;
	font-weight: bold!important;
	text-align: center;
	font-size: 16px!important;
	border-bottom: 1px solid #dbcb9a;
	color: #626262;
}

/*----------------------------------

  st

------------------------------------*/

.st {
    position: relative;
	display: inline-block;
	background-color: #FFFFFF;
    color: #7a9952;
    text-align: center;
    padding: 15px;
	line-height: 1.5;
	border-radius: 10px;
	letter-spacing: 0.1em;
	font-weight: 300;
	border: #473F30 2px solid;
}
.st:before {
	content: "";
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 1rem 0.8rem 1rem 0.8rem;
	border-color:  #FFFFFF transparent transparent transparent;
	position: absolute;
	bottom:-30px;
	left: 0;
	right: 0;
	margin: 0 auto;
	z-index: 2;
}

.st1 {
	position: relative;
	line-height: 1.5;
	padding:20px 20px 20px 0;
	z-index: 1;
	color:#2c4956;
}
.st1::after {
	content: "";
	position: absolute;
	width:100vw;
	height: 100%;
	top: 0;
	right: 50px;
	background: #EDCEA0;
	z-index: -1;
}
@media only screen and (max-width:480px){
.st1 {
	top:-20px;
	margin-bottom: -10px;
}
.st1::after {
	z-index: -1;
	right: 20px;
}
}

.st2 {
	overflow: hidden;
	text-align: center;
	position: relative;
	padding: .5em 0.2em;
	letter-spacing: 0.05em;
	font-weight: 500;
}
.st2::before , .st2::after {
     position: absolute;
     left: 0;
     content: '';
     width: 100%;
     height: 7px;
     box-sizing: border-box;
}
.st2::before {
     top: 0;
     border-top: 3px solid #65b7c5;
     border-bottom: 1px solid #65b7c5;
}
.st2::after {
     bottom: 0;
     border-top: 1px solid #65b7c5;
     border-bottom: 3px solid #65b7c5;
}

.st3 {
	position: relative;
	background: #d5cc62;
	box-shadow: 0px 0px 0px 5px #d5cc62;
	border-top: dashed 2px #fff;
	border-bottom: dashed 2px #fff;
	padding: 0.5em 0.05em;
	text-align: center;
	line-height: 1;
}

/* stf
------------------------------ */

.stf {
    position: relative;
    color: #fff;
    text-align: center;
    padding: 10px;
	line-height: 1.5;
	letter-spacing: 0.1em;
	font-weight: bold;
	margin-bottom: 1em;
}
.stf::before {
	content: "";
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 1rem 0.8rem 1rem 0.8rem;
	position: absolute;
	bottom:-26px;
	left: 0;
	right: 0;
	margin: 0 auto;
	z-index: 2;
}
.stfc1 { background-color: #f39800; }
.stfc1::before { border-color:  #f39800 transparent transparent transparent; }
.stfc2 { background-color: #8B8170; }
.stfc2::before { border-color:  #8B8170 transparent transparent transparent; }
.stfc3 { background-color: #23b6db; }
.stfc3::before { border-color:  #23b6db transparent transparent transparent; }
.stfc4 { background-color: #A0ACAF; }
.stfc4::before { border-color:  #A0ACAF transparent transparent transparent; }

/*----------------------------------

  flow

------------------------------------*/

.flc {
	display: -ms-flexbox;
	display: -webkit-box;
	display: -webkit-flex;
	display: flex;
	-ms-flex-wrap: wrap;
	-webkit-flex-wrap: wrap;
	flex-wrap: wrap;
	width: 100%;
}

ul.flowrec {
	display: flex;
	margin: 0!important;
	padding: 0!important;
	list-style: none;
	justify-content: space-between;
}
.flowrec li {
	width: calc(33% - 20px);
	padding: 1.5em;
	background: #fff;
	border-radius: 20px;
	box-sizing: border-box;
	position: relative;
	font-size: 1rem;
	font-family: 'Noto Sans JP', sans-serif;
	color: #333333;
	font-weight: 500;
}
.flowrec li::before {
	content: "";
	position: absolute;
	top: 50%;
	right: -24px;
	margin-top: -12px;
	border: 12px solid transparent;
	border-left: 12px solid #fff;
	z-index: 2;
}
.flowrec li:last-child::before { display: none; }

@media only screen and (max-width: 768px) {
ul.flowrec { flex-direction: column; }
.flowrec li {
	width: 100%;
	padding: 1em;
	border: solid 3px #fff;
	margin-bottom: 2.5em;
}
.flowrec li::before {
	top: auto;
	right: auto;
	margin-top: auto;	
	bottom: -24px;
	left: 50%;
	margin-left: -15px;
	border: 10px solid transparent;
	border-top: 12px solid #FFF;
}
.flowrec li:last-child::before { display: none; }
}


