@charset "utf-8";
article {
	width: 98%;
	margin: auto;
}
.scroll-container {
  width: 100%;
  overflow: hidden;
  padding: 20px 0;
  box-sizing: border-box;
  position: relative;
}
.scroll-text {
  display: inline-block;
  white-space: nowrap;
  animation: scroll 15s linear infinite;
  position: absolute;
  top: 0;
  z-index: -1;
  letter-spacing: 0.2rem;
}
.scroll-text.no-scroll {
  animation: none;
}
.scroll-text span {
  font-size: 10rem;
  line-height: 120%;
  font-weight: bold;
  color: #f5f5f5;
  margin-right: 5px;
}
@keyframes scroll {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-30%);
  }
}
/*BOX背景色*/
.bg1 {
	background: #005b90;
	margin: auto;
	color: #fff;
	padding: 0 0 1px;
}
.box {
	max-width: 1000px;
	margin: auto;
}

.title {
	max-width: 1000px;
	margin: 10px auto;
	padding: 0;
	z-index: 100;
}
.title h1 {
	font-size:min(6vw,45px);
	line-height: 120%;
	padding: 0 0 0;
	font-weight: bold;
	text-align: center;
}
.title .h1_sub {
	text-align: center;
	font-weight: bold;
	font-size:min(4vw,28px);
	margin: 0;
}
.title img {
	display: block;
	width: 98%;
	margin: 10px auto 0;
	border-radius: 5px;
}
article h2 {
	font-size:min(6vw,35px);
	font-weight: bold;
	margin: 50px 0 20px;
	padding: 1rem 1rem;
	text-align: center;
	line-height: 130%;
	position: relative;
}
article h2:after {
	content: '';
	position: absolute;
	bottom: 0;
	display: block;
	width: 150px;
	height: 4px;
	left: 50%;
	-webkit-transform: translateX(-50%);
	transform: translateX(-50%);
	background-image: linear-gradient(45deg, #f15a24, #f7931e);
}
article h2 span {
	font-size:min(3vw,20px);
	display: block;
}
article h3 {
	font-size:min(4vw,30px);
	font-weight: bold;
	margin: 50px auto 20px;
	text-align: center;
}
article h3 {
  position: relative;
  line-height: 1.4;
  padding:0.25em 1em;
  display: inline-block;
  top:0;
}
article h3:before, article h3:after { 
  position: absolute;
  top: 0;
  content:'';
  width: 8px;
  height: 100%;
  display: inline-block;
}
article h3:before {
  border-left: solid 1px black;
  border-top: solid 1px black;
  border-bottom: solid 1px black;
  left: 0;
}
article h3:after {
  content: '';
  border-top: solid 1px black;
  border-right: solid 1px black;
  border-bottom: solid 1px black;
  right: 0;
}
article h4 {
	font-size:min(4vw,30px);
	font-weight: bold;
	margin: 50px 0 20px;
}
/*院情報*/
.shop .map_btn {
	display: block;
	font-size: 80%;
	background: #f7931e;
	color: #fff;
	width: 140px;
	text-align: center;
	line-height: 180%;
}
.shop_info {
	max-width: 900px;
	margin: 20px auto;
}
.shop_info td {
	text-align: left;
}
.picture {
	padding: 0;
	margin: 0;
}
.picture li {
	width : -webkit-calc((100% / 4) - 1.5%);
	width : calc((100% / 4) - 1.5%);
	display:inline-block;
	margin: 10px 0.5%;
	padding: 0;
	vertical-align: top;
}
.picture li img {
	width: 100%;
	border-radius: 5px;
}
.picture li p {
	font-size: min(2.5vw,14px);
	line-height: 120%;
}
@media screen and (min-width: 481px) and (max-width: 767px) {
.picture li {
	width : -webkit-calc((100% / 3) - 2%);
	width : calc((100% / 3) - 2%);
}
}
@media screen and (max-width: 480px) {
.picture li {
	width : -webkit-calc((100% / 3) - 2%);
	width : calc((100% / 3) - 2%);
}
}
/*予約*/
.reserve {
	text-align: center;
	margin: 50px 0;
}
.reserve h2 {
	margin: 0;
}
.reserve ul {
	max-width: 1000px;
	margin: 0 auto 20px;
}
.reserve li {
	text-align: center;
	position: relative;
	width: 45%;
	margin:3% 1% 1%;
	display: inline-block;
	font-weight: bold;
}
.reserve li:first-child {
	color: #fff;
	width: 90%;
	max-width: 800px;
	margin: 10px auto 20px;
	font-size: min(20px);
}
.reserve li:first-child span,.reserve li:first-child a {
	display: inline-block;
	background: inherit;
	padding: 0 0;
	font-size: min(16px);
	vertical-align: middle;
}.reserve li:first-child a {
	font-size: min(28px);
	margin-right: 10px;
}
.reserve li .icon_position {
	position: absolute;
	top: -30px;
	left: -10px;
}
.reserve li .icon {
  position: relative;
  width: fit-content;
  padding: 7px 16px;
  border: 2px solid #f7931e;
  background: #fff;
  color: #f7931e;
}
.reserve li a {
	background: #f7931e;
	display: block;
	color: #fff;
	padding: 10px 0;
}
.reserve li .icon::after {
  content: "";
  position: absolute;
  top: calc(100% + 5px);
  left: 50%;
  width: 30px;
  height: 2px;
  box-sizing: border-box;
  background-color: #f7931e;
  box-shadow: 0 2px 0 #ffffff, 0 -2px 0 #ffffff; /* 背景色と同じ色を指定 */
  rotate: 50deg;
}
@media screen and (max-width: 480px) {
.reserve li:first-child {
	margin: 10px auto 30px;
}
}
.math_bg {
	padding:0 0 10px;
	border-top:3px solid #f5f5f5;
	border-bottom:3px solid #f5f5f5;
  background-image:
    repeating-linear-gradient(to bottom,
      transparent 25px,
      rgba(0, 0, 0, 0.04) 26px,  rgba(0, 0, 0, 0.04) 26px,
      transparent 27px,  transparent 51px, 
      rgba(0, 0, 0, 0.04) 52px,  rgba(0, 0, 0, 0.04) 52px,
      transparent 53px,  transparent 77px, 
      rgba(0, 0, 0, 0.04) 78px,  rgba(0, 0, 0, 0.04) 78px,
      transparent 79px,  transparent 103px, 
      rgba(0, 0, 0, 0.04) 104px,  rgba(0, 0, 0, 0.04) 104px,
      transparent 105px,  transparent 129px, 
      rgba(0, 0, 0, 0.04) 130px,  rgba(0, 0, 0, 0.04) 130px),

    repeating-linear-gradient(to right,
      transparent 25px,
      rgba(0, 0, 0, 0.04) 26px,  rgba(0, 0, 0, 0.04) 26px,
      transparent 27px,  transparent 51px, 
      rgba(0, 0, 0, 0.04) 52px,  rgba(0, 0, 0, 0.04) 52px,
      transparent 53px,  transparent 77px, 
      rgba(0, 0, 0, 0.04) 78px,  rgba(0, 0, 0, 0.04) 78px,
      transparent 79px,  transparent 103px, 
      rgba(0, 0, 0, 0.04) 104px,  rgba(0, 0, 0, 0.04) 104px,
      transparent 105px,  transparent 129px, 
      rgba(0, 0, 0, 0.04) 130px,  rgba(0, 0, 0, 0.04) 130px);}
/*料金について*/
article table {
	width: 100%;
	overflow-wrap: anywhere;
	word-break: normal;
	line-break: strict;
}
article table th {
	font-weight: bold;
	text-align: center;
	border: 1px solid #ccc;
	padding: 10px;
	width: 35%;
}
article table td {
	text-align: center;
	border: 1px solid #ccc;
	padding: 10px 15px;
}
@media screen and (max-width: 767px) {
}
/*流れ*/
.flow h3 {
	position: relative;
}
.flow h3 .numb {
	background:#009a7c;
	color:#fff;
	padding: 5px 10px;
	line-height: 100%;
	margin-right: 5px;
}
.flow h5 {
	font-weight: bold;
	margin: 10px 0;
}
.flow img {
	float: left;
	display: block;
	margin: 0 5px 0 0;
}
@media screen and (max-width: 767px) {
.flow h5 {
	font-size:min(3.5vw,22px);
}
.flow img {
	float: none;
	display: block;
	margin: 0 auto;
}
}
/*コンセプト*/
.catch01 {
	text-align: center;
	font-weight: bold;
	line-height: 120%;
	font-size: min(5vw,35px);
}
.catch01 .text01 span {
	background:#009a7c;
	color: #fff;
	padding: 0 10px;
}
.catch02 {
	text-align: center;
	font-weight: bold;
	line-height: 120%;
	font-size: min(5vw,25px);
	color: #009a7c;
}
/*求人*/
.recruit_txt1 {
	text-align: center;
	font-weight: bold;;
	font-size: min(4.3vw,26px);
	line-height: 200%;
}
.recruit_txt1 span {
	background:#009a7c;
	color: #fff;
}
.sign {
	font-weight: bold;
}
.sign span {
  font-family: "Zen Kurenaido", sans-serif;
  font-size: 140%;
  letter-spacing: 0.2em;
}
.recruit_bg {
	position: relative;
	margin-bottom:30px;
}
.recruit_bg p {
	font-size:min(2.3vw,22px);
	line-height:200%;
}
.recruit_bg .txt_box {
	position: absolute;
	top: 10%;
	left:10px;
}
@media screen and (max-width: 639px) {
.recruit_bg img {
	width: 100%;
}
.recruit_bg p {
	font-size:min(3vw,22px);
	text-shadow:0.5px 0.5px 0 #FFF, -0.5px -0.5px 0 #FFF,
	-0.5px 0.5px 0 #FFF, 0.5px -0.5px 0 #FFF,
	0px 0.5px 0 #FFF,  0-0.5px 0 #FFF,
	-0.5px 0 0 #FFF, 0.5px 0 0 #FFF;
}
.recruit_bg .txt_box {
	top: 10%;
	left:5px;
}
#recruit {
	font-size:14px;
	text-align: left;
}
#recruit td {
	text-align: left;
}
}