@charset "utf-8";

/* CSS Document */

/* -------------
- base
-------------- */
body {
	color: #3e3a39;
	letter-spacing: 0.03em;
	font-family: 'M PLUS 1p', sans-serif;
}
::placeholder {
	color: #d3d3d4;
}


/* PC/ sp時の表示,非表示の切替 */
.sp {
	display: none;
}
@media only screen and (max-width: 768px) {
	.pc {
		display: none;
	}
	.sp {
		display: block;
	}
}
a {
	text-decoration: none;
	color: #3e3a39;
}

/* デフォルトのaタグ/buttonタグホバー */
a,
button {
	transition: all .3s ease;
}
@media (hover: hover) {
	a:hover,
	button:hover {
		opacity: .8;
		text-decoration: none;
	}
	a[tabindex]:hover {
		opacity: 1;
	}
}
ul,
li {
	list-style: none;
}

/* bootstrap_スタイルを削除 */
.row {
	--bs-gutter-x: 0;
	--bs-gutter-y: 0;
	display: initial;
	flex-wrap: nowrap;
	margin: 0;
}
.schedule_wrap table {
	border-collapse: unset;
}
select.form-control:not([size]):not([multiple]) {
	height: unset;
}
.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
	font-size: unset;
	margin-bottom: 0;
	line-height: initial;
}


/* -------------
- 下層ページ_共通
-------------- */
.page_bg {
	background-color: #f6e6e9;
}
.contents_area {
	max-width: 1340px;
	width: 92%;
	display: flex;
	margin: 50px auto;
}
@media only screen and (max-width: 768px) {
	.contents_area {
		flex-direction: column;
	}
}

.main_container {
	padding: 47px 56px 88px;
	background-color: #f7f8f8;
	border-radius: 0 0 36px 0;
}
@media only screen and (max-width: 1500px) {
	.main_container {
		padding: 3.25vw 3.888vw 6.111vw;
	}
}
@media only screen and (max-width: 768px) {
	.main_container {
		padding: 25px 25px 78px;
		border-radius: 0 0 36px 36px;
	}
}

/* -------------
 header
-------------- */
header {
	width: 226px;
}
header .logo_area {
	height: 75px;
	background-color: #fd91ac;
	border-radius: 36px 0 0 0;
}
header .logo_area h1 {
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: #ec6c91;
	border-radius: 36px 0 0 0;
}
header .logo_area h1 a {
	width: 90px;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}
header nav {
	height: calc(100% - 75px);
}
header nav ul {
	height: 100%;
	background-color: #fd91ac;
	display: flex;
	flex-direction: column;
	gap: 35px 0;
	padding: 50px 0;
	border-radius: 0 0 0 36px;
}
header nav ul li {
	width: 145px;
	margin: 0 auto;
}
header nav ul li a {
	color: #fff;
	padding-left: 44px;
	position: relative;
}
@media (hover: hover) {
	header nav ul li a:hover {
		color: #fff;
	}
}

header nav ul li a::before {
	content: '';
	position: absolute;
	bottom: 0; left: 0;
	width: 26px;
	height: 26px;
}
header nav ul li a.icon_page::before {
	background: url(../images/common/icon_mypage.svg) no-repeat;
	background-size: cover;
}
header nav ul li a.icon_new::before {
	background: url(../images/common/icon_reserve.svg) no-repeat;
	background-size: cover;
}
header nav ul li a.icon_history::before {
        background: url(../images/common/icon_history.svg) no-repeat;
        background-size: cover;
}
header nav ul li a.icon_logout::before {
	background: url(../images/common/icon_logout.svg) no-repeat;
	background-size: cover;
}


header nav ul li a::after {
	content: '';
	position: absolute;
	bottom: 0; right: 0;
	width: calc(100% - 44px);
	height: 1px;
	background-color: #fff;
	transform: scale(0, 1);
	transform-origin: left top;
	transition: transform .3s;
}
@media (hover: hover) {
	header nav ul li a:hover::after {
		transform: scale(1, 1);
	}
}


@media only screen and (max-width: 768px) {
	header {
		width: 100%;
		height: 50px;
		display: flex;
		background-color: #fd91ac;
		border-radius: 25px 25px 0 0;
	}
	header .logo_area {
		height: auto;
		z-index: 150;
	}
	header .logo_area h1 {
		border-radius: initial;
		background-color: transparent;
		margin-left: 25px;
	}
	header .logo_area h1 a {
		width: 67px;
	}
	header nav {
		position: fixed;
		top: 0;
		right: -100%;
		z-index: 100;
		height: auto;
		width: 95vw;
		visibility: hidden;
		background-color: transparent;
		transition: 0.4s;
	}
	header nav.-active {
		right: 0;
		visibility: visible;
	}
	header nav {
		background-color: #fd91ac;
		border-radius: 0 0 0 36px;
	}
	header nav ul {
		padding: 150px 0 50px;
		gap: 30px 0;
	}
	header nav ul li {
		width: 80%;
	}
	header nav ul li.name {
		font-size: 21px;
		color: #fff;
		padding-bottom: 40px;
		border-bottom: 1px solid #fff;
	}
	header nav ul li a {
		display: block;
		padding-bottom: 30px;
		border-bottom: 1px solid #FFF;
	}
	header nav ul li a::before {
		bottom: 30px;
	}
	header nav ul li a::after {
		width: 100%;
		bottom: 0;
	}
	header nav p.copy {
		font-size: 10px;
		color: #fff;
		letter-spacing: 0;
		text-align: center;
		margin-bottom: 45px;
	}
	/* ハンバーガーボタン */
	.humberger {
		height: 50px;
		margin-left: auto;
		position: relative;
		z-index: 150;
		width: 50px;
		border: none;
		background-color: transparent;
		margin-right: 10px;
	}
	.humberger.-active .humberger__line {
		background-color: transparent;
	}
	.humberger.-active .humberger__line::before {
		top: 0;
		transform: rotate(45deg);
	}
	.humberger.-active .humberger__line::after {
		top: 0;
		transform: rotate(-45deg);
	}
	.humberger.-active .humberger__text::before {
		content: "CLOSE";
	}
	.humberger__line {
		display: block;
		height: 2px;
		position: absolute;
		top: 18px;
		left: 50%;
		transform: translateX(-50%);
		width: 24px;
		background-color: #FFF;
		transition: 0.4s;
	}
	.humberger__line:before,
	.humberger__line:after {
		content: "";
		display: block;
		height: 100%;
		position: absolute;
		width: 100%;
		background-color: #FFF;
		transition: inherit;
	}
	.humberger__line:before {
		top: -6px;
	}
	.humberger__line:after {
		top: 6px;
	}
	.humberger__text {
		position: absolute;
		bottom: 8px;
		left: 50%;
		transform: translateX(-50%);
		width: 100%;
		line-height: 1;
	}
	.humberger__text::before {
		content: "MENU";
		text-align: center;
		color: #FFF;
		font-size: 10px;
		font-weight: 900;
	}
}


/*=======================================
　login_wrapper (メニュー欄・氏名の帯周辺の共通部分)
=======================================*/
main {
	width: calc(100% - 226px);
}
.head_name_area {
	height: 75px;
	background-color: #fd91ac;
	border-radius: 0 36px 0 0;
	display: flex;
	align-items: center;
	justify-content: end;
}
.head_name_area p {
	font-size: 18px;
	color: #fff;
	margin-right: 66px;
	margin-top: 11px;
	margin-bottom: 0;
}
@media only screen and (max-width: 768px) {
	main {
		width: 100%;
	}
	.head_name_area {
		display: none;
	}
}

/*=======================================
　schedule_wrap (カレンダー)
=======================================*/
.schedule_wrap {
	position: relative;
}
.schedule_wrap .row {
	display: flex;
	gap: 0 25px;
	padding: 0 50px;
	margin-bottom: 40px;
}
.schedule_wrap .row .wide_set {
	width: calc((100% - 50px)/3);
	background-color: #fff;
	border-radius: 25px;
	box-shadow: 7px 7px 3px rgba(35, 24, 21, .2);
}
.wide_set .text-center {
	text-align: center;
	padding: 14px 0 12px;
	background-color: #94dceb;
	color: #fff;
	font-size: 20px;
	letter-spacing: 0.1em;
	font-weight: 500;
	border-radius: 25px 25px 0 0;
	margin-bottom: 0;
}
.wide_set .text-center span {
	font-size: 14px;
}
.wide_set table {
	width: 100%;
	padding: 21px 18px;
}
.wide_set table thead {
	font-size: 12px;
	color: #b1b1b0;
	font-weight: 400;
}
.wide_set table thead th {
	text-align: center;
}
.wide_set table thead th.sun {
	color: #ec6d7b;
}
.wide_set table thead th.sat {
	color: #5397d2;
}
.wide_set table tbody tr td {
	text-align: center;
	padding: 6px 0;
	font-weight: 500;
	width: 14.285%;
}
.wide_set table tbody tr td.sun,
.wide_set table tbody tr td.sun a {
	color: #ec6d7b;
}
.wide_set table tbody tr td.sat,
.wide_set table tbody tr td.sat a {
	color: #5397d2;
}
.wide_set table tbody tr td a {
	padding: 3px;
	border-radius: 50%;
}
.wide_set table tbody tr td.current {
	position: relative;
	color: #fff;
	z-index: 5;
}
.wide_set table tbody tr td.current::before {
	background-color: #94dceb;
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 30px;
	height: 30px;
	border-radius: 50%;
	color: #fff;
	z-index: -1;
}
.wide_set table tbody tr td.today {
        position: relative;
        color: #fff;
        z-index: 5;
}
.wide_set table tbody tr td.today::before {
        background-color: #d3d3d4;
        content: '';
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 25px;
        height: 25px;
        border-radius: 50%;
        color: #fff;
        z-index: -1;
}


@media only screen and (max-width: 1500px) {
	.schedule_wrap .row {
		padding: 0 2.5vw;
	}
	.wide_set table {
		padding: 20px;
		box-sizing: border-box;
	}
	.wide_set table tbody tr td {
		padding: 3px 0;
	}
	.wide_set table tbody tr td span,
	.wide_set table tbody tr td a {
		font-size: 14px;
	}
	.wide_set table tbody tr td.training::before,
	.wide_set table tbody tr td.category_02::before,
	.wide_set table tbody tr td.category_03::before,
	.wide_set table tbody tr td.current::before {
		width: 25px;
		height: 25px;
	}
}
@media only screen and (min-width: 1300px) {
	.schedule_wrap .swiper-button-prev,
  .schedule_wrap .swiper-button-next {
    display: none;
  }
  .schedule_wrap .swiper-wrapper {
    box-sizing: inherit;
		width: auto;
		height: auto;
  }
}
@media only screen and (max-width: 1300px) {
	.swiper_area {
		position: relative;
	}
	.schedule_wrap .swiper {
		width: 80%;
		box-shadow: 7px 7px 3px rgba(35, 24, 21, .2);
		border-radius: 25px;
	}
	.schedule_wrap .row {
		padding: 0;
		margin-bottom: 0;
		gap: 0;
	}
	.schedule_wrap .row .wide_set {
		box-shadow: none;
		width: 100%;
	}

}


@media only screen and (max-width: 768px) {
	.wide_set table {
		padding: 15px;
	}
	.schedule_wrap .swiper_area {
		max-width: 350px;
		width: 80%;
		margin: 0 auto;
	}
	.schedule_wrap .swiper {
		width: 100%;
	}
}




/*=======================================
　form_box (店舗・メニューのセレクト部分)
=======================================*/
.form_box {
	margin: 0 50px 32px;
}
.form_group {
	display: flex;
	gap: 0 35px;
}
.form_group .item {
	display: flex;
	flex-direction: column;
}
.form_group .item label {
	font-size: 10px;
	color: #fd91ac;
	letter-spacing: 0.1em;
	font-weight: 500;
	margin-bottom: 4px;
	text-align: left;
	display: flex;
	justify-content: flex-start;
}
.form-control {
	padding: 5px 12px;
	background-color: #fff;
	color: #231815;
	border-radius: 20px;
}
/* 各セレクトボタンの横幅 */
#shop_label {
	width: 200px;
}
#menu_label {
	width: 300px;
}
/* デフォルトの矢印 */
.for_arrow {
	position: relative;
}
select {
	-webkit-appearance: none;
  appearance: none; /* デフォルトの矢印を非表示 */
}
.for_arrow::before {
	content: '';
	position: absolute;
	top: calc(50% - 3px);
	right: 12px;
	transform: translateY(-50%);
	width: 6px;
	height: 6px;
	border-top: 1px solid #fff;
	border-right: 1px solid #fff;
	-webkit-transform: rotate(135deg);
	transform: rotate(135deg);
	z-index: 5;
	pointer-events: none;
	transition: all .3s;
}
.for_arrow::after {
	content: '';
	position: absolute;
	height: 100%;
	width: 30px;
	background-color: #fd91ac;
	top: 0;
	right: 0px;
	border-radius: 0 20px 20px 0;
	pointer-events: none;
	transition: all .3s;
}
.for_arrow.active::before {
	transform: rotate(-45deg);
	border-top: 1px solid #fd91ac;
	border-right: 1px solid #fd91ac;
}
.for_arrow.active::after {
	background-color: transparent;
}
@media only screen and (max-width: 1300px) {
	.form_box {
		margin: 30px 40px;
	}
}
@media only screen and (max-width: 1000px) {
	.form_group {
		flex-direction: column;
		gap: 23px 0;
		width: 100%;
	}
	.form_group .item {
		width: 100%;
	}
	.form_group .item label {
		align-self: flex-start;
	}
	/* 各セレクトボタンの横幅 */
	#shop_label,
	#menu_label {
		width: 100%;
	}
	.form_box {
		margin: 40px 0 35px;
	}
}

@media only screen and (min-width: 1300px) {
	.swiper-button-prev,
  .swiper-button-next {
    display: none;
  }
  .swiper-wrapper {
    box-sizing: inherit;
		width: auto;
		height: auto;
  }
}
@media only screen and (max-width: 1300px) {
	.swiper_area {
		position: relative;
	}
	.swiper {
		width: 80%;
		box-shadow: 7px 7px 3px rgba(35, 24, 21, .2);
		border-radius: 25px;
	}
	.schedule_wrap .row {
		padding: 0;
		margin-bottom: 0;
		gap: 0;
	}
	.schedule_wrap .row .col-sm-4 {
		box-shadow: none;
	}
	.col-sm-4 table {
		width: calc(100% - 2.5vw);
	}
		/* swiperのナビゲーション */
	.swiper-button-next, .swiper-button-prev {
		width: 30px;
		height: 30px;
		background-color: #94dceb;
		border-radius: 50%;
	}
	.swiper-button-next:before, .swiper-button-prev:before {
		content: attr(data-navi);
		position: absolute;
		bottom: -15px;
		left: 50%;
		width: 100%;
		transform: translateX(-50%);
		font-size: 10px;
		color: #3e3a39;
		letter-spacing: -1px;
	}
	.swiper-button-next:after, .swiper-button-prev:after {
		font-size: 10px;
		color: #fff;
	}
}
@media only screen and (max-width: 768px) {
	.swiper-button-prev {
		left: -38px;
	}
	.swiper-button-next {
		right: -38px;
	}
}


/* スライダーナビゲーション 端まで行ったらボタン表示をなくす */
.swiper-button-next.swiper-button-disabled, .swiper-button-prev.swiper-button-disabled {
	display: none;
}



/*=======================================
　time_schedule_area (時間単位の予約空き時間)
=======================================*/
.contents_area {
	overflow: hidden;
}
.time_schedule_area {
	padding: 0 50px;
	position: relative;
	margin-bottom: 45px;
}
.time_schedule_area  table {
	margin-bottom: 0;
}
.time_schedule_area thead {
	color: #fff;
}
.table thead th {
	border: 2px solid #f7f8f8;
	border-radius: 22px 22px 0 0;
	background-color: #94dceb;
	font-weight: normal;
	text-align: center;
}
.table thead th.sun {
	background-color: #ec6c91;
}
.table thead th.sat {
	background-color: #5397d2;
}
.table tbody {
	background-color: #fff;
}
.table-bordered td, .table-bordered th {
	border: 2px solid #f7f8f8;
	font-size: 16px;
	letter-spacing: 0.1em;
}
.time_schedule_area td a,
.time_schedule_area td span {
	color: #c9caca;
}

.time_schedule_area .time_btn {
	display: inline-block;
	width: 80%;
	border-radius: 20px;
	cursor: pointer;
}
@media (hover: hover) {
	.time_schedule_area .time_btn:hover {
		color: #fff;
	}
}
.time_schedule_area td a {
	display: block;
	width: 100%;
	border-radius: 20px;
}
.time_schedule_area td .btn-reserved {
	/*color: #fff;
	background-color: #f19dae;*/
	width: 100%;
	padding: 0 5px;
	white-space: nowrap;
	padding: 3px 2px;
	font-size: 12px;
}
.table-bordered td {
	padding: 5px;
}




@media only screen and (max-width: 1450px) {
	.table thead th {
		font-size: 12px;
	}
	.time_schedule_area td,
	.time_schedule_area td span {
		font-size: 15px;
		cursor: default;
	}
}
@media only screen and (max-width: 1200px) {
		.time_schedule_area .scroll_set {
		overflow-x: auto;
	}
	.time_schedule_area .scroll_set table {
		white-space: nowrap;
	}
}

@media only screen and (max-width: 1100px) {
	.time_schedule_area {
		margin: 0 0 35px;
	}
	.time_sche_swipectrl {
		display: none;
	}
}
@media only screen and (max-width: 768px) {
	.time_schedule_area {
		padding: 0;
	}
	.table thead th {
		border-radius: 15px 15px 0 0;
		padding: 10px 10px 8px;
	}
	.table thead th,
	.time_schedule_area td,
	.time_schedule_area td span {
		font-size: 12px;
	}
}


/* modal */
.btn-warning,
.btn-warning:hover,
.btn-danger span {
    color: #fff;
}
@media (min-width: 992px){
.modal-dialog {
    width: 900px;
    max-width: inherit;
}
}
.btn-close {
    float: right;
    font-size: 21px;
    font-weight: 700;
    line-height: 1;
    color: #000;
    text-shadow: 0 1px 0 #fff;
    filter: alpha(opacity=20);
    opacity: .2;
	padding: 0!important;
    margin: 0!important;
    box-sizing: content-box;
    width: auto;
    height: auto;
    background: none;
    border: 0;
    border-radius: none;
}

/* ページャーボタン */
.time_link_btn {
	content: '';
	position: absolute;
	padding-bottom: 18px;
}
.time_link_btn a {
	display: block;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background-color: #fd91ac;
	position: relative;
}
.time_link_btn.left {
	top: 10px;
	left: 0;
}
.time_link_btn.right {
	top: 10px;
	right: 0;
}
.time_link_btn.left a {
	transform: rotate(225deg);
}
.time_link_btn.right a {
	transform: rotate(45deg);
}

.time_link_btn a::before {
	content: '';
	position: absolute;
	top: calc(50% - 3px);
	left: 50%;
	transform: translate(-50%);
	width: 8px;
	height: 8px;
	border-top: 1px solid #fff;
	border-right: 1px solid #fff;
}
.time_link_btn::before {
	content: attr(data-st_before);
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 100%;
	text-align: center;
	font-size: 12px;
	letter-spacing: 0.1em;
}

@media only screen and (max-width: 768px) {
	.time_link_btn {
		display: none;
	}
}





/*=======================================
　コピーライト
=======================================*/
p.copy {
	font-size: 14px;
	text-align: center;
}
@media (max-width: 768px) {
	p.copy {
		font-size: 12px;
	}
}
