﻿/*-----------------------------------------------------------------------  
 // タブレット用
-------------------------------------------------------------------------*/ 

@media screen and (max-width: 1280px) {

	.none-tb {
		display: none;
	}

	#container {
		margin: 0px auto;
		position: relative;
		min-height: 100vh;
	}

	.wrap{
		clear: both;
		width: 90%;
		padding-top: 20px;
		padding-bottom: 100px;
		margin-left: auto;
		margin-right: auto;
		text-align: left;
		font-size: 18px;
		font-weight: 300;
		line-height: 160%;
		min-height: 10vh;
	}

	h3 {
		font-size: 40px;
		line-height: 60px;
		font-weight: 600;
		margin-bottom: 30px;
		letter-spacing: 5px;
		color: #0067A4;
		border-bottom: 2px solid #0067A4;
	}

	h4 {
		font-size: 28px;
		line-height: 46px;
		font-weight: 500;
		margin-bottom: 30px;
		letter-spacing: 5px;
		border-bottom: 2px solid #333333;
	}

	.unit {
		clear: both;
		width: 100%;
		text-align: left;
		margin: 20px 0px 50px 0px;
	}

	.content {
		clear: both;
		width: 100%;
		text-align: left;
		margin: 10px 0px 30px 0px;
	}

	.photo {
		width: 100%;
	}

	.page-link {
		color: #0067A4;
		pading-bottom: 3px;
		margin-left: 5px;
		margin-right: 5px;
		border-bottom: 2px dotted #0067A4;
	}

	/*-------- ステータス --------*/

	.user-status-box {
		width: 100%;
		height: 50px;
		display: flex;
		justify-content: left;
		align-items: center;
		column-gap: 5%;
		border-bottom: 1px dotted #333333;
	}

	.user-status-box div {
		float: left;
	}

	/*-----------------------------------------------------------------------  
	 // 入力フォーム
	-------------------------------------------------------------------------*/ 
	.required::after {
		content: "必須";
		display: flex;
		justify-content: center;
		align-items: center;
		height: 18px;
		font-size: 11px;
		font-weight: 400;
		letter-spacing: 2px;
		background-color: #FCA454;
		color: #FFFFFF;
		padding: 0px 10px 0px 10px;
		margin-top: 5px;
		margin-left: 10px;
		border-radius: 2px;
	}

	.notice-required {
		margin-bottom: 30px;
	}

	.notice-required::before {
		content: "*";
		font-size: 24px;
		color: #FCA454;
		margin-right: 10px;
	}

	input {
		width: 90%;
		height: 20px;
		font-size: 16px;
		border: 1px solid #666666;
		border-radius: 3px;
		padding: 5px 10px;
	}

	input[type='file'] {
		width: 90%;
		height: 30px;
		font-size: 16px;
		color: #333333;
		border-style: none;
	}

	::file-selector-button,
	::-webkit-file-upload-button {
		background-color: #EAE8E8;
		border: 1px solid #666666;
		cursor: pointer;
		width: 180px;
		height: 30px;
		font-size: 14px;
		border-radius: 3px;
		margin-left: -10px;
		margin-right: 20px;
	}

	select {
		width: 90%;
		height: 30px;
		font-size: 16px;
		color: #333333;
		background-color: #FFFFFF;
		border: 1px solid #666666;
		border-radius: 3px;
		padding: 5px 10px;
	}

	textarea {
		width: 90%;
		height: 150px;
		font-size: 16px;
		border: 1px solid #666666;
		border-radius: 3px;
		padding: 5px 10px;
	}

	.submit {
		display: flex;
		justify-content: center;
		margin-top: 20px;
	}

	.submit button {
		width: 50%;
		height: 35px;
		color: #FFFFFF;
		font-size: 16px;
		background-color: #0067A4;
		border: none;
		border-radius: 3px;
		cursor: pointer;
	}

	.submit button:hover {
		opacity: 0.5;
		transform: translateY(5px);
	}

	.submit-delete button {
		background-color: #C1272D;
	}

	.submit-delete button:hover {
		opacity: 0.5;
		transform: translateY(5px);
	}
	
	.back {
		display: flex;
		justify-content: center;
		margin-top: 20px;
	}

	.back button {
		width: 30%;
		height: 35px;
		color: #333333;
		font-size: 16px;
		background-color: #EAE8E8;
		border: 1px solid #333333;
		border-radius: 3px;
		cursor: pointer;
	}

	.back button:hover {
		opacity: 0.5;
		transform: translateY(5px);
	}

	button {
		font-size: 18px;
		color: #333333;
		background-color: #EAE8E8;
		border: 1px solid #999999;
		border-radius: 3px;
	}

	button:hover {
		cursor: pointer;
		opacity: 0.5;
	}

	/*-------- 説明 --------*/

	.explain {
		max-width: 90%;
		position: relative;
		display: inline-block;
		border: 2px solid #0067A4;
		border-radius: 5px;
		margin-top: 50px;
		margin-bottom: 50px;
	}

	.explain:before {
		content: "";
		position: absolute;
		bottom: -24px;
		left: 150px;
		margin-left: -15px;
		border: 12px solid transparent;
		border-top: 12px solid #FFFFFF;
		z-index: 2;
	}

	.explain:after {
		content: "";
		position: absolute;
		bottom: -30px;
		left: 150px;
		margin-left: -17px;
		border: 14px solid transparent;
		border-top: 14px solid #0067A4;
		z-index: 1;
	}

	.explain-text{
		display: block;
		font-size: 18px;
		color: #CC3333;
		margin-bottom: 30px;
	}

	/*-------- アラート --------*/

	.alert {
		position: relative;
		border: 2px solid #0067A4;
		border-radius: 5px;
		margin-top: 30px;
		padding: 40px 20px 30px 20px;
		margin-bottom: 30px;
	}

	.alert::before {
		content: "！";
		font-size: 20px;
		font-weight: 500;
		position: absolute;
		background-color: #0067A4;
		border: 10px solid #FFFFFF;
		color: #FFFFFF;
		letter-spacing: 5px;
		width: 32px;
		height: 35px;
		display: flex;
		justify-content: center;
		align-items: center;
		padding-left: 3px;
		border-radius: 50%;
		left: 30px;
		top: -28px;
	}

	.alert-text{
		display: block;
		font-size: 16px;
		color: #CC3333;
		margin-left: 22%;
		margin-bottom: 20px;
	}

	/*-------- リザルト --------*/

	.result {
		position: relative;
		border: 2px solid #0067A4;
		border-radius: 5px;
		margin-top: 30px;
		padding: 40px 20px 30px 20px;
		margin-bottom: 30px;
	}

	.result::before {
		content: "♪";
		font-size: 20px;
		font-weight: 500;
		position: absolute;
		background-color: #0067A4;
		border: 10px solid #FFFFFF;
		color: #FFFFFF;
		letter-spacing: 5px;
		width: 32px;
		height: 35px;
		display: flex;
		justify-content: center;
		align-items: center;
		padding-left: 3px;
		border-radius: 50%;
		left: 30px;
		top: -28px;
	}

	.result-text{
		display: block;
		font-size: 16px;
		color: #CC3333;
		margin-left: 300px;
		margin-bottom: 30px;
	}


	/*-------- 詳細 --------*/

	.user-detail-box {
		display: flex;
		font-size: 16px;
		border-bottom: 1px dashed #666666;
		padding-bottom: 5px;
		margin-bottom: 10px;
		overflow-wrap: break-word;
	}

	.user-detail-box-caption {
		width: 25%;
		font-weight: 500;
	}

	.user-detail-box-content {
		width: 75%;
	}

	/*-------- 入力 --------*/

	.user-input-box-center {
		width: 100%;
		display: flex;
		justify-content: center;
		align-items: center;
		margin-bottom: 10px;
	}

	.user-input-box-center-caption {
		float: left;
		width: auto;
		margin-right: 20px;

		padding:0 .4em .2em;
		border-bottom: 3px dotted #0067A4;
		background-color: #FFFFFF;
		font-weight: 500;
	}

	.user-input-box-center-content {
		float: left;
		width: 60%;
	}

	.user-input-box-center-content input {
		width: 100%;
	}

	.user-input-box-center-content select {
		width: 100%;
	}


	.user-input-box {
		display: flex;
		font-size: 16px;
		margin-bottom: 10px;
	}

	.user-input-box-caption {
		width: 20%;
		font-weight: 500;
		display: flex;
	}

	.user-input-box-content {
		width: 78%;
		margin-left: 2%;
	}

	.user-input-box-content-short {
		width: 13%;
	}


	/*-----------------------------------------------------------------------  
	 // トップに戻るボタン
	-------------------------------------------------------------------------*/ 

	.pagetop-button{
		background-color: #FFFFFF;
		border: 2px solid #0067A4;
		color: #0067A4;
		font-size: 14px;
		text-decoration: none;
		width: 70px;
		height: 70px;
		border-radius: 50%;
		display: flex;
		justify-content: center;
		align-items: center;
		flex-direction: column;
	}

	.pagetop-button::before {
		content: "";
		display: block;
		width: 10px;
		height: 10px;
		border-top: 2px solid #0067A4;
		border-right: 2px solid #0067A4;
		transform: rotate(-45deg);
	}

	.pagetop-button:hover {
		opacity: 1.0;
		background-color: #0067A4;
		border: 3px solid #FFFFFF;
		color: #FFFFFF;
	}

	.pagetop-button:hover::before {
		border-top: 2px solid #FFFFFF;
		border-right: 2px solid #FFFFFF;
		transform: rotate(-45deg);
	}

	#pagetop {
		z-index: 1;
		position: fixed;
		right: 25px;
		bottom: 65px;
	}

	/*-------------------------------------------------  
	 // ヘッダー
	--------------------------------------------------*/

	#header {
		width: 100%;
		height: 130px;
		background-color: #0067A4;
		position: relative;
	}

	#logo-header {
		position: absolute;
		top: 15px;
		left: 30px;
	}

	#logo-header img {
		width: 180px;
	}

	.command-header {
		position: absolute;
		top: 40px;
		right: 30px;
		display: flex;	
	}

	.command-header div {
		width: 150px;
		height: 30px;
		border-radius: 30px;
		background-color: #FFFFFF;
		color: #0067A4;
		margin-left: 10px;
		display: flex;
		justify-content: center;
		align-items: center;
	}

	.account-header {
		position: absolute;
		top: 45px;
		right: 370px;
		color: #FFFFFF;
	}

	.menu-header {
		position: absolute;
		top: 70px;
		right: 30px;
	}

	.menu-header ul{
		display: flex;
	}

	.menu-header li{
		list-style: none;
		margin-left: 10px;
	}

	.menu-header a{
		color: #FFFFFF;
	}

	/*-------------------------------------------------  
	 // フッター
	--------------------------------------------------*/

	#footer {
		clear: both;
		width: 100%;
		height: 100px;
		background-color: #0067A4;
	}

	.menu-footer {
		position: absolute;
		bottom: 20px;
		left: 20px;
	}

	.menu-footer ul{
		display: flex;
	}

	.menu-footer li{
		list-style: none;
		margin-right: 10px;
	}

	.menu-footer a{
		color: #FFFFFF;
	}


	/*-------------------------------------------------  
	 // トップページ
	--------------------------------------------------*/

	/*-------- メニュー --------*/

	#user-top-menu {
		width: 100%;
		display: flex;
		justify-content: center;
		flex-wrap: wrap;
		column-gap: 2vw;
		row-gap: 2vw;
	}

	.user-top-menu-box {
		display: flex;
		justify-content: center;
		align-items: center;
		flex-direction: column;
		width: 16vw;
		height: 16vw;
		color: #FFFFFF;
		background-color: #0067A4;
		border-radius: 5px;
		text-align: center;
	}

	.user-top-menu-box span {
		width: 100%;
		display: block;
		font-size: 8vw;
	}

	.user-top-menu-text {
		width: 100%;
		display: block;
		font-size: 1.7vw;
		line-height: 2.5vw;
	}

	/*-------- お知らせ --------*/

	.user-top-info-box {
		width: 100%;
		border-bottom: 1px dotted #333333;
		padding-bottom: 10px;
		margin-bottom: 20px;
	}

	.user-top-info-title {
		font-size: 24px;
		font-weight: 400;
		letter-spacing: 2px;
	}

	.user-top-info-text {
		padding-top: 7px;
		padding-bottom: 7px;
	}

	.user-top-info-date {
		text-align: right;
	}

	/*-------------------------------------------------  
	 // モーダル
	--------------------------------------------------*/

	.user-modal {
		width: 600px;
		height: 250px;
		position: fixed;
		top: 0px;
		inset: 0;
		margin: 50px auto;
		z-index: 9999;

		display: none;
		align-items: center;
		justify-content: center;
		flex-direction: column;

		background-color: #FFFFFF;
		border: 2px solid #333333;
		border-radius: 10px;

	}

	@keyframes user-modal-slide-down {
		from {
			transform: translateY(-100%);
		}
		to {
			transform: translateY(0);
		}
	}

	.user-modal-close {
		width: 50px;
		height: 50px;
		position: absolute;
		top: 30px;
		right: 30px;
	}

	.user-modal-close::before,.user-modal-close::after{
		content: "";
		width: 3px;
		height: 30px;
		background: #333333;
		position: absolute;
		top: 20px;
		right: 20px;
		border-radius: 2.5px;
	}

	.user-modal a::before {
		transform: translate(-50%,-50%) rotate(45deg);
	}
 
	.user-modal a::after {
		transform: translate(-50%,-50%) rotate(-45deg);
	}

	.user-modal button {
		width: 300px;
		height: 35px;
	}

	.user-modal-background-open {
		position: fixed;
		background: rgba(0, 0, 0, .5);
		width: 100%;
		height: 100%;
		top: 0;
		left: 0;
		z-index: 1000;
	}

	.user-modal-background-close {
		display: none;
	}

	/*-------------------------------------------------  
	 // ユーザー情報
	--------------------------------------------------*/

	/******************* 詳細 *******************/

	.user-editor-detail-submit {
		width: 100%;
		text-align: right;
	}

	.user-editor-detail-submit button {
		width: 200px;
		height: 35px;
		font-size: 16px;
		color: #FFFFFF;
		background-color: #0067A4;
		border: none;
		border-radius: 3px;
		cursor: pointer;
	}

				
	/*-------------------------------------------------  
	 // 新規予約
	--------------------------------------------------*/

	.reserve-schedule-weekly-wrap { 
		clear: both;
		width: 90%;
		margin-top: -150px;
		margin-bottom: 0px;
		margin-left: auto;
		margin-right: auto;
		text-align: left;
		font-size: 18px;
		font-weight: 300;
		line-height: 160%;
	}

	.reserve-schedule-weekly {
		width: 100%;
		border-collapse: collapse; border: 2px solid #333333;
		font-size: 16px;
		margin-top: 20px;
	}

	.reserve-schedule-weekly-pin {
		text-align: center;
	}

	.reserve-schedule-weekly-pin td {
		height: 40px;
		border-collapse: collapse;
		border: 1px solid #333333;
	}

	.reserve-schedule-weekly-weekday {
		text-align: center;
		background-color: #FFFFFF;
		color: #000000;
		border-collapse: collapse;
		border: 2px solid #333333;
	}

	.reserve-schedule-weekly-weekday td {
		height: 50px;
		width: 12%;
		border-collapse: collapse;
		border: 1px solid #333333;
		line-height: 18px;
		letter-spacing: 5px;
	}

	.reserve-schedule-weekly-weekday-saturday {
		color: #3D96F9;
	}

	.reserve-schedule-weekly-weekday-sunday {
		color: #F93D4A;
	}

	.reserve-schedule-weekly-day {
		text-align: center;
	}

	.reserve-schedule-weekly-day td{
		font-size: 12px;
		line-height: 14px;
		height: 40px;
		border-collapse: collapse;
		border: 1px solid #333333;
		border-top: 1px solid #CCCCCC;
		border-bottom: 1px solid #CCCCCC;
		cursor: pointer;
	}

	.reserve-schedule-weekly-fixedcol {
		width: 12%;
	}

	.reserve-schedule-weekly-day-gray {
		background-color: #F2F2F2;
	}

	.reserve-schedule-weekly-day span{
		font-size: 16px;
	}

	.reserve-modal {
		width: 60%;
		height: 300px;
		font-size: 16px;
		position: fixed;
		top: 0px;
		inset: 0;
		margin: 50px auto;
		z-index: 9999;

		display: none;
		justify-content: center;
		align-items: center;
		flex-direction: column;

		background-color: #FFFFFF;
		border: 2px solid #333333;
		border-radius: 10px;
	}

	@keyframes slide-down {
		from {
			transform: translateY(-100%);
		}
		to {
			transform: translateY(0);
		}
	}

	.reserve-modal-close {
		width: 50px;
		height: 50px;
		position: absolute;
		top: 30px;
		right: 30px;
	}

	.reserve-modal-close::before,.reserve-modal-close::after{
		content: "";
		width: 3px;
		height: 30px;
		background: #333333;
		position: absolute;
		top: 20px;
		right: 20px;
		border-radius: 2.5px;
	}

	.reserve-modal a::before {
		transform: translate(-50%,-50%) rotate(45deg);
	}
 
	.reserve-modal a::after {
		transform: translate(-50%,-50%) rotate(-45deg);
	}

	.reserve-modal div {
		text-align: center;
	}

	.reserve-modal button{
		width: 300px;
		height: 35px;
	}

	.reserve-normal {
		cursor: pointer;
	}

	.reserve-not {
		background-color: #D1CFCF;
		cursor: none;
		pointer-events: none;
	}

	.reserve-not span {
		font-size: 14px;
		color: #FFFFFF;
	}

	.reserve-book {
		background-color: #F4CC7A;
		cursor: pointer;
	}

	.reserve-book span {
		display: flex;
		justify-content: center;
		align-items: center;
		width: 90%;
		height: 26px;
		font-size: 14px;
		color: #333333;
		background-color: #FFFFFF;
		padding 3px 7px 3px 7px;
		border-radius: 13px;
		margin-left: auto;
		margin-right: auto;
	}

	.reserve-blank {
		background-color: transparent;
		cursor: none;
		pointer-events: none;
	}

	/*-------------------------------------------------  
	 // メールアドレス変更
	--------------------------------------------------*/

	.mail-input-box-caption {
		width: 25%;
		text-align: left;
	}

	/*-------------------------------------------------  
	 // パスワード変更
	--------------------------------------------------*/

	.password-input-box-caption {
		width: 30%;
		text-align: left;
	}

}


/*-----------------------------------------------------------------------  
 // スマートフォン用
-------------------------------------------------------------------------*/ 

@media screen and (max-width: 767px) {

	.none-sp {
		display: none;
	}

	.block-sp {
		display: block;
	}

	#container {
		margin: 0px auto;
		position: relative;
		min-height: 100vh;
	}

	.wrap{
		clear: both;
		width: 90%;
		padding-top: 10px;
		padding-bottom: 50px;
		margin-left: auto;
		margin-right: auto;
		text-align: left;
		font-size: 16px;
		font-weight: 300;
		line-height: 20px;
		min-height: 20vh;
	}

	h3 {
		font-size: 26px;
		line-height: 40px;
		font-weight: 600;
		margin-bottom: 20px;
		letter-spacing: 1px;
		color: #0067A4;
		border-bottom: 2px solid #0067A4;
	}

	h4 {
		font-size: 24px;
		line-height: 36px;
		font-weight: 400;
		margin-bottom: 20px;
		letter-spacing: 1px;
		border-bottom: 2px solid #333333;
	}

	.unit {
		clear: both;
		width: 100%;
		text-align: left;
		margin: 20px 0px 50px 0px;
	}

	.content {
		clear: both;
		width: 100%;
		text-align: left;
		margin: 10px 0px 50px 0px;
	}

	.photo {
		width: 100%;
	}

	.page-link {
		color: #0067A4;
		pading-bottom: 3px;
		margin-left: 5px;
		margin-right: 5px;
		border-bottom: 2px dotted #0067A4;
	}

	/*-------- ステータス --------*/

	.user-status-box {
		width: 100%;
		height: auto;
		display: flex;
		flex-flow: column;
		padding-top: 10px;
		padding-bottom: 10px;
		border-bottom: 1px dotted #333333;
	}

	.user-status-box div {
		width: 100%;
		margin-bottom: 5px;
	}

	.user-status-box button {
		float: right;
		width: 50%;
		height: 30px;
		color: #FFFFFF;
		font-size: 16px;
		font-weight: 400;
		background-color: #0067A4;
		border: none;
		border-radius: 2px;
		cursor: pointer;
	}

	.user-status-box span {
		float: right;	
	}

	/*-----------------------------------------------------------------------  
	 // 入力フォーム
	-------------------------------------------------------------------------*/ 

	.input-caption {
		padding: 0.25em 0.5em;
		background: transparent;
		border-left: solid 3px #0067A4;
	}

	.required::after {
		content: "必須";
		display: flex;
		justify-content: center;
		align-items: center;
		height: 18px;
		font-size: 9px;
		font-weight: 400;
		letter-spacing: 2px;
		background-color: #FCA454;
		color: #FFFFFF;
		padding: 0px 10px 0px 10px;
		margin-top: 0px;
		margin-left: 10px;
		border-radius: 2px;
	}

	.notice-required {
		margin-bottom: 30px;
	}

	.notice-required::before {
		content: "*";
		font-size: 18px;
		color: #FCA454;
		margin-right: 2px;
	}

	input {
		width: 90%;
		height: 30px;
		font-size: 18px;
		border: 1px solid #666666;
		border-radius: 2px;
		padding: 2px 5px;
	}

	select {
		width: 90%;
		height: 35px;
		font-size: 18px;
		color: #333333;
		background-color: #FFFFFF;
		border: 1px solid #666666;
		border-radius: 2px;
		padding: 2px 5px;
	}

	textarea {
		width: 90%;
		height: 130px;
		font-size: 18px;
		border: 1px solid #666666;
		border-radius: 2px;
		padding: 2px 5px;
	}

	.submit {
		display: flex;
		justify-content: center;
		margin-top: 50px;
	}

	.submit button {
		width: 80%;
		height: 40px;
		color: #FFFFFF;
		font-size: 14px;
		font-weight: 400;
		background-color: #0067A4;
		border: none;
		border-radius: 2px;
		cursor: pointer;
	}

	.submit button:hover {
		opacity: 0.5;
		transform: translateY(5px);
	}

	.submit-delete button {
		background-color: #C1272D;
	}

	.submit-delete button:hover {
		opacity: 0.5;
		transform: translateY(5px);
	}
	
	.back {
		display: flex;
		justify-content: center;
		margin-top: 20px;
	}

	.back button {
		width: 80%;
		height: 40px;
		color: #333333;
		font-size: 14px;
		font-weight: 400;
		background-color: #EAE8E8;
		border: 1px solid #333333;
		border-radius: 3px;
		cursor: pointer;
	}

	.back button:hover {
		opacity: 0.5;
		transform: translateY(5px);
	}

	button {
		font-size: 14px;
		font-weight: 400;
		color: #333333;
		background-color: #EAE8E8;
		border: 1px solid #666666;
	}

	button:hover {
		cursor: pointer;
		opacity: 0.5;
	}

	/*-------- 説明 --------*/

	.explain {
		max-width: 87%;
		position: relative;
		display: inline-block;
		border: 2px solid #0067A4;
		border-radius: 5px;
		margin-top: 10px;
		padding: 20px 20px 20px 20px;
		margin-bottom: 50px;
	}


	.explain:before {
		content: "";
		position: absolute;
		bottom: -24px;
		left: 80px;
		margin-left: -15px;
		border: 12px solid transparent;
		border-top: 12px solid #FFFFFF;
		z-index: 2;
	}

	.explain:after {
		content: "";
		position: absolute;
		bottom: -30px;
		left: 80px;
		margin-left: -17px;
		border: 14px solid transparent;
		border-top: 14px solid #0067A4;
		z-index: 1;
	}

	.explain-text{
		display: block;
		font-size: 18px;
		color: #CC3333;
		margin-bottom: 30px;
	}


	/*-------- アラート --------*/

	.alert {
		position: relative;
		border: 2px solid #0067A4;
		border-radius: 5px;
		margin-top: 30px;
		padding: 30px 20px 15px 20px;
		margin-bottom: 30px;
		font-size: 18px;
		line-height: 22px;
	}

	.alert::before {
		content: "！";
		font-size: 18px;
		font-weight: 500;
		position: absolute;
		background-color: #0067A4;
		border: 10px solid #FFFFFF;
		color: #FFFFFF;
		padding-left: 4px;
		width: 30px;
		height: 34px;
		display: flex;
		justify-content: center;
		align-items: center;
		border-radius: 50%;
		left: 15px;
		top: -26px;
	}

	.alert-text{
		display: block;
		font-size: 16px;
		color: #CC3333;
		margin-left: 2%;
		margin-top: -10px;
		margin-bottom: 20px;
	}

	/*-------- リザルト --------*/

	.result {
		position: relative;
		border: 2px solid #0067A4;
		border-radius: 5px;
		margin-top: 30px;
		padding: 30px 20px 15px 20px;
		margin-bottom: 30px;
	}

	.result::before {
		content: "♪";
		font-size: 18px;
		font-weight: 700;
		position: absolute;
		background-color: #0067A4;
		border: 10px solid #FFFFFF;
		color: #FFFFFF;
		padding-left: 4px;
		width: 30px;
		height: 34px;
		display: flex;
		justify-content: center;
		align-items: center;
		border-radius: 50%;
		left: 15px;
		top: -26px;
	}

	.result-text{
		display: block;
		font-size: 16px;
		color: #CC3333;
		margin-left: 300px;
		margin-bottom: 30px;
	}

	/*-------- 詳細 --------*/

	.user-detail-box {
		display: block;
		width: 100%;
		font-size: 16px;
		border-bottom: 1px dashed #666666;
		padding-bottom: 10px;
		margin-bottom: 20px;
		overflow-wrap: break-word;
	}

	.user-detail-box-caption {
		width: 100%;
		font-weight: 500;
		margin-bottom: 5px;
	}

	.user-detail-box-content {
		margin-left: 5%;
	}

	/*-------- 入力 --------*/

	.user-input-box-center {
		width: 90%;
		display: flex;
		flex-flow: column;
		margin-bottom: 20px;
		margin-left: auto;
		margin-right: auto;
	}

	.user-input-box-center-caption {
		width: 100%;
		text-align: left;
		margin-bottom: 5px;
		margin-left: 3%;
		border-style: none;

		display: flex;
		align-items: center;
		column-gap: 8px;
	}

	.user-input-box-center-caption::before {
		width: 0.8em;
		height: 0.4em;
		border-bottom: 4px solid #0067A4;
		border-left: 4px solid #0067A4;
		transform: rotate(-45deg) translate(2px, -2px);
		content: '';
	}


	.user-input-box-center-content {
		width: 100%;
	}

	.user-input-box-center-content input {
		width: 100%;
	}

	.user-input-box-center-content select {
		width: 100%;
	}


	.user-input-box {
		display: block;
		width: 100%;
		margin-bottom: 20px;
	}

	.user-input-box-caption {
		width: 100%;
		font-weight: 500;
		padding-left: 1%;
		margin-bottom: 7px;
	}

	.user-input-box-content {
		width: 100%;
	}

	.user-input-box-content-short {
		width: 20%;
	}

	/*-----------------------------------------------------------------------  
	 // トップに戻るボタン
	-------------------------------------------------------------------------*/ 

	.pagetop-button{
		background-color: #FFFFFF;
		border: 2px solid #0067A4;
		color: #0067A4;
		font-size: 14px;
		text-decoration: none;
		width: 60px;
		height: 60px;
		border-radius: 50%;
		display: flex;
		justify-content: center;
		align-items: center;
		flex-direction: column;
	}

	.pagetop-button::before {
		content: "";
		display: block;
		width: 8px;
		height: 8px;
		border-top: 2px solid #0067A4;
		border-right: 2px solid #0067A4;
		transform: rotate(-45deg);
	}

	.pagetop-button:hover {
		opacity: 1.0;
		background-color: #FFFFFF;
		border: 2px solid #0067A4;
		color: #0067A4;
	}

	.pagetop-button:hover::before {
		border-top: 2px solid #0067A4;
		border-right: 2px solid #0067A4;
		transform: rotate(-45deg);
	}

	#pagetop {
		position: fixed;
		right: 20px;
		bottom: 16px;
		z-index: 1;
	}

	/*-------------------------------------------------  
	 // ヘッダー
	--------------------------------------------------*/

	#header {
		width: 100%;
		height: 70px;
		background-color: #0067A4;
		position: relative;
	}

	#logo-header {
		position: absolute;
		top: 10px;
		left: 10px;
	}

	#logo-header img {
		width: 140px;
	}

	.command-header {
		position: absolute;
		top: 40px;
		right: 30px;
		display: flex;	
	}

	.command-header div {
		width: 150px;
		height: 30px;
		border-radius: 30px;
		background-color: #FFFFFF;
		color: #0067A4;
		margin-left: 10px;
		display: flex;
		justify-content: center;
		align-items: center;
	}

	.account-header {
		position: absolute;
		top: 30px;
		right: 10px;
		color: #FFFFFF;
	}

	/*-------------------------------------------------  
	 // ドロワーメニュー
	--------------------------------------------------*/

	.hamburger {
		position: absolute;
		top: 20px;
		right: 20px;
		z-index: 150;
		width: 30px;
		height: 30px;
		cursor: pointer;
	}

	.hamburger.is-active span:nth-child(1) {
		top: 50%;
		transform: translate(-50%, -50%) rotate(135deg);
	}

	.hamburger.is-active span:nth-child(2) {
		opacity: 0;
	}

	.hamburger.is-active span:nth-child(3) {
		top: 50%;
		transform: translate(-50%, -50%) rotate(-135deg);
	}

	.hamburger span {
		position: absolute;
		left: 50%;
		transform: translate(-50%, -50%);
		width: 100%;
		height: 2px;
		background-color: #FFFFFF;
		transition: transform .3s;
	}

	.hamburger.is-active span {
		background-color: #0067A4;
	}

	.hamburger span:nth-child(1) {
		top: 30%;
	}

	.hamburger span:nth-child(2) {
		top: 60%;
	}

	.hamburger span:nth-child(3) {
		top: 90%;
	}


	.drawer {
		visibility: hidden;
		opacity: 0;
		position: fixed;
		top: 0;
		left: 0;
		z-index: 999;
		width: 100%;
		height: 100vh;
		background-color: #FFFFFF;
		transition: opacity .3s, visibility .3s;
	}

	.drawer.is-active {
		visibility: visible;
		opacity: 1;
	}

	.drawer-inner {
		display: flex;
		justify-content: center;
		width: 100%;
		height: 100%;
		margin-top: 80px;
	}

	.drawer-inner ul {
		display: flex;
		flex-direction: column;
		row-gap: 10px;
		padding-left: 0px;
	}

	.drawer-inner li {
		list-style-type: none;
		display: flex;
		justify-content: center;
		align-items: center;
		width: 250px;
		height: 40px;
		font-size: 16px;
		color: #FFFFFF;
		background-color: #0067A4;
		border-radius: 3px;
	}

	.drawer-inner-white {
		color: #0067A4;
		background-color: #FFFFFF;
		border: 2px solid #0067A4;
		margin-top: 20px;
		margin-bottom: 20px;
	}

	.drawer-inner span {
		font-size: 25px;
		margin-right: 10px;
	}

	.drawer-inner a {
		font-size: 20px;
		color: #0067A4;
	}


	/*-------------------------------------------------  
	 // フッター
	--------------------------------------------------*/

	#footer {
		clear: both;
		width: 100%;
		height: 50px;
		background-color: #0067A4;
	}


	/*-------------------------------------------------  
	 // トップページ
	--------------------------------------------------*/

	#user-top-menu {
		width: 100%;
		display: flex;
		justify-content: center;
		flex-wrap: wrap;
		column-gap: 1vw;
		row-gap: 1vw;
	}

	.user-top-menu-box {
		display: flex;
		justify-content: center;
		align-items: center;
		flex-direction: column;
		width: 28vw;
		height: 28vw;
		color: #FFFFFF;
		background-color: #0067A4;
		border-radius: 5px;
		text-align: center;
	}

	.user-top-menu-box span {
		width: 100%;
		display: block;
		font-size: 13vw;
	}

	.user-top-menu-text {
		width: 100%;
		display: block;
		margin-top: 5px;
		font-size: 14px;
		line-height: 18px;
	}


	/*-------- お知らせ --------*/

	.user-top-info-box {
		width: 100%;
		border-bottom: 1px dotted #333333;
		padding-bottom: 10px;
		margin-bottom: 20px;
	}

	.user-top-info-title {
		font-size: 18px;
		font-weight: 400;
		letter-spacing: 2px;
	}

	.user-top-info-text {
		padding-top: 7px;
		padding-bottom: 7px;
	}

	.user-top-info-date {
		text-align: right;
	}

	/*-------------------------------------------------  
	 // モーダル
	--------------------------------------------------*/

	.user-modal {
		width: 80%;
		height: 200px;
		position: fixed;
		top: 0px;
		inset: 0;
		margin: 50px auto;
		z-index: 9999;
		font-size: 12px;

		display: none;
		align-items: center;
		justify-content: center;
		flex-direction: column;

		background-color: #FFFFFF;
		border: 2px solid #333333;
		border-radius: 10px;

	}

	@keyframes user-modal-slide-down {
		from {
			transform: translateY(-100%);
		}
		to {
			transform: translateY(0);
		}
	}

	.user-modal-close {
		width: 30px;
		height: 30px;
		position: absolute;
		top: 15px;
		right: 15px;
	}

	.user-modal-close::before,.user-modal-close::after{
		content: "";
		width: 2px;
		height: 20px;
		background: #333333;
		position: absolute;
		top: 15px;
		right: 15px;
		border-radius: 2.5px;
	}

	.user-modal a::before {
		transform: translate(-50%,-50%) rotate(45deg);
	}
 
	.user-modal a::after {
		transform: translate(-50%,-50%) rotate(-45deg);
	}

	.user-modal div {
		text-align: center;
	}

	.user-modal button{
		width: 200px;
		height: 30px;
	}

	.user-modal-background-open {
		position: fixed;
		background: rgba(0, 0, 0, .5);
		width: 100%;
		height: 100%;
		top: 0;
		left: 0;
		z-index: 1000;
	}

	.user-modal-background-close {
		display: none;
	}

	/*-------------------------------------------------  
	 // ユーザー情報
	--------------------------------------------------*/


	/******************* 詳細 *******************/

	.user-editor-detail-submit {
		width: 100%;
		text-align: right;
	}

	.user-editor-detail-submit button {
		width: 40%;
		height: 30px;
		font-size: 14px;
		color: #FFFFFF;
		background-color: #0067A4;
		border: none;
		border-radius: 3px;
		cursor: pointer;
	}

			
	/*-------------------------------------------------  
	 // 新規予約
	--------------------------------------------------*/

	.reserve-schedule-weekly-wrap { 
		margin-top: -80px;
		margin-left: auto;
		margin-right: auto;
		padding: 0;
		width: 90%;
		overflow-x: auto;
		white-space: nowrap;
		overflow-scrolling: touch;
		-webkit-overflow-scrolling: touch;
	}

	.reserve-schedule-weekly {
		width: 180%;
		border-collapse:separate;
		border-spacing:0;
		border: 1px solid #333333;
		font-size: 14px;
		margin-top: 15px;
	}

	.reserve-schedule-weekly-weekday {
		text-align: center;
		background-color: #FFFFFF;
		color: #000000;
		border-collapse: collapse;
		border: 1px solid #333333;
	}

	.reserve-schedule-weekly-weekday td {
		width: 10%;
		height: 50px;
		border-collapse: collapse;
		border: 1px solid #333333;
		line-height: 16px;
		letter-spacing: 2px;
	}

	.reserve-schedule-weekly-weekday-saturday {
		color: #3D96F9;
	}

	.reserve-schedule-weekly-weekday-sunday {
		color: #F93D4A;
	}

	.reserve-schedule-weekly-day {
		text-align: center;
		background-color: #FFFFFF;
	}

	.reserve-schedule-weekly-day td{
		font-size: 6px;
		line-height: 8px;
		height: 30px;
		cursor: pointer;
	}

	.reserve-schedule-weekly-fixedcol {
		width: 150px;
		position: sticky;
		left: 0;
		z-index: 666;
		background-color: #FFFFFF;
		border-left: 1px solid #333333;
	}

	.reserve-schedule-weekly-day-gray {
		background-color: #F2F2F2;
	}

	.reserve-schedule-weekly-day span{
		font-size: 14px;
	}

	.reserve-modal {
		width: 90%;
		height: 200px;
		font-size: 14px;
		position: fixed;
		top: 0px;
		inset: 0;
		margin: 50px auto;
		z-index: 9999;

		display: none;
		justify-content: center;
		align-items: center;
		flex-direction: column;

		background-color: #FFFFFF;
		border: 2px solid #333333;
		border-radius: 10px;
	}

	@keyframes slide-down {
		from {
			transform: translateY(-100%);
		}
		to {
			transform: translateY(0);
		}
	}

	.reserve-modal-close {
		width: 30px;
		height: 30px;
		position: absolute;
		top: 15px;
		right: 15px;
	}

	.reserve-modal-close::before,.reserve-modal-close::after{
		content: "";
		width: 2px;
		height: 20px;
		background: #333333;
		position: absolute;
		top: 15px;
		right: 15px;
		border-radius: 2.5px;
	}

	.reserve-modal a::before {
		transform: translate(-50%,-50%) rotate(45deg);
	}
 
	.reserve-modal a::after {
		transform: translate(-50%,-50%) rotate(-45deg);
	}

	.reserve-modal div {
		text-align: center;
	}

	.reserve-modal button{
		width: 200px;
		height: 30px;
	}

	.reserve-normal {
		cursor: pointer;
	}

	.reserve-not {
		background-color: #D1CFCF;
		cursor: none;
		pointer-events: none;
	}

	.reserve-not span {
		font-size: 10px;
		color: #FFFFFF;
	}

	.reserve-book {
		background-color: #F4CC7A;
		cursor: pointer;
	}

	.reserve-book span {
		display: flex;
		justify-content: center;
		align-items: center;
		width: 90%;
		height: 20px;
		font-size: 10px;
		color: #333333;
		background-color: #FFFFFF;
		padding 2px 5px 2px 5px;
		border-radius: 10px;
		margin-left: auto;
		margin-right: auto;
	}

	.reserve-blank {
		background-color: transparent;
		cursor: none;
		pointer-events: none;
	}

}
