/*------------------------------------------------------------------------------
	共通
------------------------------------------------------------------------------*/
html, body	{
	padding: 0px;
	margin: 0px;
	height: 100%;
	color: #333;
}

body	{
	margin: 0;
	padding: 0;
}

form {
	display: inline;
}

input[type=text], input[type=password], input[type=date], input[type=time], input[type=number], select, textarea {
	padding: 5px;
	border: 1px solid #ccc;
}

input[type=text], input[type=password], input[type=date], input[type=time], input[type=number], select {
	height: 30px;
}

select {
	background: white;
}
/*------------------------------------------------------------------------------
	共通文字
------------------------------------------------------------------------------*/
.fg_main {
	color: var(--main-color);
}

.fg_sub {
	color: var(--sub-color);
}
/*------------------------------------------------------------------------------
	共通背景色
------------------------------------------------------------------------------*/
.bg_main {
	background-color: var(--main-color);
}

.bg_sub {
	background-color: var(--sub-color);
}

.bg_main_i {
	background-color: var(--main-color) !important;
}

.bg_sub_i {
	background-color: var(--sub-color) !important;
}
/*------------------------------------------------------------------------------
	画面制御
------------------------------------------------------------------------------*/
.split-navi-wrap {
	display: flex;
}

.split-navi-wrap > li:first-of-type {
	width: 200px;
}

.split-navi-wrap > li:last-of-type {
	width: calc(100% - 220px);
	margin-left: 20px;
}

.split-half-wrap {
	justify-content: space-between;
	display: flex;
}

.split-half-wrap > li {
	width: 49.5%;
}
/*------------------------------------------------------------------------------
	行数制限
------------------------------------------------------------------------------*/
.line-clamp-2 {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.line-clamp-3 {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
/*------------------------------------------------------------------------------
	ボタン
------------------------------------------------------------------------------*/
.btn-or {
	width: 150px;
	padding: 10px 0;
	border-radius: 4px;
	background: #3D6B99;
	border: 1px solid #3D6B99;
	color: white;
	font-size: 14px;
	font-weight: bold;
	text-align: center;
	cursor: pointer;
	display: inline-block;
	line-height: 1;
}

.btn-or.rev {
	background: white;
	color: #707070;
}

.btn-or.red {
	background: red;
	border: 1px solid red;
}

.btn-or.red.rev {
	background: white;
	color: red;
}

.btn-or.blue {
	background: #00A9E0;
	border: 1px solid #00A9E0;
}

.btn-or.blue.rev {
	background: white;
	color: #00A9E0;
}

.btn-or.green {
	background: var(--main-color);
	border: 1px solid var(--main-color);
}

.btn-or.green.rev {
	background: white;
	color: var(--main-color);
}

.btn-or.free {
	width: auto;
	padding: 5px 10px;
}

.btn-or:disabled	{
	background-color: #C0C0C0;
	border-color: #C0C0C0;
}
/*------------------------------------------------------------------------------
	ダイアログ
------------------------------------------------------------------------------*/
.dialog-outer {
	left: 0;
	top: 0;
	width: 100%;
	height: 100vh;
	background: black;
	opacity: 0.2;
	position: fixed;
	display: none;
	z-index: 2;
}

.dialog-inner {
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	background: white;
	position: fixed;
	display: none;
	z-index: 3;
}

.dialog-inner > p {
	padding: 10px 0;
	background: var(--main-color);
	color: white;
	font-size: 16px;
	font-weight: bold;
	text-align: center;
}

.dialog-inner > div:first-of-type {
	padding: 20px;
}

.dialog-inner > div:last-of-type {
	padding: 20px 0;
	background: #E0E0E0;
	text-align: center;
}
/*------------------------------------------------------------------------------
	必須・任意
------------------------------------------------------------------------------*/
.require {
	position: relative;
	padding-right: 40px;
	text-align: right;
	font-weight: bold;
}

.require::after {
	content: '必須';
	right: 0;
	top: -2px;
	padding: 3px 5px;
	background: red;
	color: white;
	font-size: 12px;
	display: inline-block;
	position: absolute;
}

.any {
	position: relative;
	padding-right: 40px;
	text-align: right;
	font-weight: bold;
}

.any::after {
	content: '任意';
	right: 0;
	padding: 3px 5px;
	background: #707070;
	color: white;
	font-size: 12px;
	display: inline-block;
	position: absolute;
}
/*------------------------------------------------------------------------------
	プライベートメニュー
------------------------------------------------------------------------------*/
.private-menu-wrap {
	flex-wrap: wrap;
	display: flex;
}

.private-menu-wrap > li {
	width: 100%;
	margin-bottom: 20px;
}

.private-menu-wrap > li > p {
	padding-bottom: 10px;
	border-bottom: 5px solid var(--line-color);
	font-size: 16px;
	font-weight: bold;
	text-align: center;
}

.private-menu-wrap > li > a {
	margin-top: 20px;
	color: #333;
	display: block;
	position: relative;
}

.private-menu-wrap > li > a::after {
	content: '\f105';
	font-family: 'FontAwesome';
	right: 5px;
	top: 0;
	color: #707070;
	position: absolute;
}
/*------------------------------------------------------------------------------
	タブメニュー
------------------------------------------------------------------------------*/
.tab-menu {
	width: 100%;
	display: flex;
	border-bottom: 1px solid var(--main-color);
}

.tab-menu > li {
	min-width: 130px;
	background: #F2F2F2;
	border-radius: 5px 5px 0 0;
	color: #CCCCCC;
	text-align: center;
	cursor: pointer;
	line-height: 1.4;
	margin-right: 5px;
}

.tab-menu > li a,
.tab-menu > li span,
.tab-menu > li label {
	color: #CCCCCC;
	display: block;
	width: 100%;
	height: 100%;
	padding: 10px 0;
	border-radius: 5px 5px 0 0;
	cursor: pointer;
}

.tab-menu > li.curr a,
.tab-menu > li.curr span,
.tab-menu > li input[type='radio']:checked + label {
	background: var(--main-color);
	border: 1px solid var(--main-color);
	border-bottom: 0;
	color: white;
}

.tab-menu > li.curr a {
	color: #FFFFFF;
}

.tab-menu > li.empty {
	flex: 1;
	background: transparent;
	text-align: left;
	cursor: auto;
}

.tab-menu > li input {
	display: none;
}
/*------------------------------------------------------------------------------
	テーブルヘッダフッタ固定
------------------------------------------------------------------------------*/
.fixed-row thead th {
	top: 0;
	position: sticky;
	z-index: 1;
}

.fixed-row tfoot th,
.fixed-row tfoot td {
	bottom: 0;
	position: sticky;
	z-index: 1;
}
/*------------------------------------------------------------------------------
	ページャー
------------------------------------------------------------------------------*/
.pager {
	width: 100%;
	height: 24px;
	font-size: 14px;
	table-layout: fixed;
}

.pager a {
	color: #707070;
	vertical-align: 2.75px;
}

.pager span {
	color: var(--main-color);
	font-size: 16px;
	vertical-align: 1.75px;
}
/*------------------------------------------------------------------------------
	その他
------------------------------------------------------------------------------*/
.explanation {
	font-size: 12px;
}

.explanation::before {
	content: '\f059';
	font-family: 'FontAwesome';
	color: var(--main-color);
}

.title-bar {
	padding-bottom: 10px;
	border-bottom: 1px solid var(--main-color);
	font-weight: bold;
}

.editor-wrap {
	background: #F7F7F7;
	padding: 20px;
	border: 1px solid var(--line-color);
	border-radius: 10px;
}

.section-wrap {
	padding: 20px;
	background: white;
	border-radius: 5px;
}
/*------------------------------------------------------------------------------
	JQuery UI
------------------------------------------------------------------------------*/
.ui-datepicker-header {
	background: var(--main-color);
	border: 0;
}

.ui-dialog-titlebar {
	background: var(--main-color);
	border: 0;
}

.ui-dialog-title {
	color: white;
}
/*------------------------------------------------------------------------------
	Dialog animation
------------------------------------------------------------------------------*/
@-webkit-keyframes scale {
	0% {
		-webkit-transform: scale(1);
		transform: scale(1);
		opacity: 1;
	}
	45% {
		-webkit-transform: scale(0.1);
		transform: scale(0.1);
		opacity: 0.7;
	}
	80% {
		-webkit-transform: scale(1);
		transform: scale(1);
		opacity: 1;
	}
}

@keyframes scale {
	0% {
		-webkit-transform: scale(1);
		transform: scale(1);
		opacity: 1;
	}
	45% {
		-webkit-transform: scale(0.1);
		transform: scale(0.1);
		opacity: 0.7;
	}
	80% {
		-webkit-transform: scale(1);
		transform: scale(1);
		opacity: 1;
	}
}

.loading-ball-pulse > span:nth-child(1) {
	-webkit-animation: scale 0.75s -0.24s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08);
	animation: scale 0.75s -0.24s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08);
}

.loading-ball-pulse > span:nth-child(2) {
	-webkit-animation: scale 0.75s -0.12s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08);
	animation: scale 0.75s -0.12s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08);
}

.loading-ball-pulse > span:nth-child(3) {
	-webkit-animation: scale 0.75s 0s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08);
	animation: scale 0.75s 0s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08);
}

.loading-ball-pulse > span {
	background-color: #75B809;
	width: 15px;
	height: 15px;
	border-radius: 100%;
	margin: 2px;
	-webkit-animation-fill-mode: both;
	animation-fill-mode: both;
	display: inline-block;
 }
/*------------------------------------------------------------------------------
	行数制限
------------------------------------------------------------------------------*/
.line-clamp-1 {
	display: -webkit-box;
	-webkit-line-clamp: 1;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.line-clamp-2 {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.line-clamp-3 {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
/*------------------------------------------------------------------------------
	アイコン
------------------------------------------------------------------------------*/
.sejutsu_icon {
	display: inline-block;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	border: solid 1px;
	margin: 2px 0;
	padding: 0;
	font-size: 12px;
	line-height: 22px;
	text-align: center;
	font-weight: normal;
}

.sejutsu_icon::after {
	content: "";
	display: inline-block;
	width: 100%;
	height: 100%;
	text-align: center;
}

.sejutsu_icon.sejutsu_type1 {
	color: var(--massage-color);
	border-color: var(--massage-color);
	background-color: var(--massage-sub-color);
}

.sejutsu_icon.sejutsu_type1::after {
	content: "\30DE";
}

.sejutsu_icon.sejutsu_type2 {
	color: var(--acupuncture-color);
	border-color: var(--acupuncture-color);
	background-color: var(--acupuncture-sub-color);
}

.sejutsu_icon.sejutsu_type2::after {
	content: "\937C";
}

.sejutsu_icon.sejutsu_type9 {
	color: var(--selfpay-color);
	border-color: var(--selfpay-color);
	background-color: var(--selfpay-sub-color);
}

.sejutsu_icon.sejutsu_type9::after {
	content: "\81EA";
}
/*------------------------------------------------------------------------------
	施術部位
------------------------------------------------------------------------------*/
.treated_area {
	display: flex;
	justify-content: center;
	width: 80px;
	height: 170px;
	padding-top: 43px;
}

.treated_area p {
	display: block;
	width: 40px;
	height: 60px;
	position: relative;
}

.treated_area p > span {
	display: block;
	width: 100%;
	height: 100%;
	position: absolute;
}

.treated_area p > span::before,
.treated_area p > span::after {
	content: '';
	display: block;
	position: absolute;
	background-color: #F2F2F2;
}

.treated_area p > span.body::before {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	top: -43px;
}

.treated_area p > span.body::after {
	width: 100%;
	height: 100%;
	border-radius: 3px;
	top: 0;
	left: 0;
}

.treated_area p > span.arm::before {
	width: 16px;
	height: 100%;
	border-radius: 16px 3px 9px 9px;
	top: 0;
	left: -19px;
}

.treated_area p > span.arm::after {
	width: 16px;
	height: 100%;
	border-radius: 3px 16px 9px 9px;
	top: 0;
	right: -19px;
}

.treated_area p > span.leg::before {
	width: 19px;
	height: 100%;
	border-radius: 3px 3px 9px 9px;
	bottom: -63px;
	left: 0;
}

.treated_area p > span.leg::after {
	width: 19px;
	height: 100%;
	border-radius: 3px 3px 9px 9px;
	bottom: -63px;
	right: 0;
}

.treated_area p.type1.Kukan > span.body::before,
.treated_area p.type1.Kukan > span.body::after,
.treated_area p.type1.MigiJoshi > span.arm::before,
.treated_area p.type1.HidariJoshi > span.arm::after,
.treated_area p.type1.MigiKashi > span.leg::before,
.treated_area p.type1.HidariKashi > span.leg::after {
	background-color: #D7EFFF;
}

.treated_area p.type2.Kukan > span.body::before,
.treated_area p.type2.Kukan > span.body::after,
.treated_area p.type2.MigiJoshi > span.arm::before,
.treated_area p.type2.HidariJoshi > span.arm::after,
.treated_area p.type2.MigiKashi > span.leg::before,
.treated_area p.type2.HidariKashi > span.leg::after {
	background-color: #FBE4E5;
}
