@charset "UTF-8";

/*スマホ・共通 カレンダー
--------------------------------------------------------------------------------*/
#calendar{
}
#calendar div{
}
table.calendar{
	border-collapse:collapse;
	background-color:#FFF;
	margin:30px auto;
	font-size:14px;
	width:100%;
	max-width:840px;
	border:3px solid rgba(var(--gray-rgb),.5);
	table-layout: fixed;
}
table.calendar caption{
	font-size:160%;
	text-align:center;
	margin:0.5em;
}
.calendar thead{
}
.calendar thead th{
	padding:10px 2px 10px;
	border-bottom:3px solid rgba(var(--close-rgb),1);
	text-align:center;
	background-color:rgba(255,255,255,1);
}
.calendar tfoot th{
	padding:10px 2px 5px;
	border-top:3px solid rgba(var(--close-rgb),1);
}
.calendar td,
.calendar th{
	padding:0px;
	text-align:center;
	border:1px solid rgba(var(--close-rgb),1);
}
/*.calendar td span.date{
	font-weight:bold;
	display:block;
	width:2.8em;
	background-color:rgba(var(--close-rgb),1);
	border-radius:2px;
	color:rgba(50,50,50,0.75);
}*/
.calendar td.empty{
	background:rgba(200,200,200,0.1) !important;
}

tr.week th{
	width: calc( 100% / 7 );
	overflow:hidden;
}
tr.week th span{
	display:block;
	font-size:0.6rem;
	word-break：break-all;
}

tr.week th span:first-letter{
	font-size:1rem;
}

.calendar  .cal_date {
	color:rgba(0,0,0,1);
}


.calendar .week_6{
}
.calendar thead .week_6,
.calendar .week_6 .cal_date {
	color:rgba(0,32,200,0.75);
}
.calendar .week_6 span.date{
	background-color:rgba(220,244,252,1.00);
}
.calendar .week_0,
.calendar .holiday{
}
.calendar thead .week_0,
.calendar .week_0 .cal_date,
.calendar .holiday .cal_date{
	color:rgba(200,0,0,0.75);
}

.daily_calendar .week_0,
.daily_calendar .holiday{
	background-color:rgba(255,0,0,0.05) !important;
	
}
.calendar .closed_day,
.daily_calendar .closed_day{
	color:rgba(0,0,0,1);
	background-color:rgba(200,200,200,0.1);
}
.calendar .closed_day{
}
.calendar .closed_day button{
	visibility:hidden;
	height:0px !important;
	padding:0 !important;
	margin:0;
	margin-top:0 !important;
	margin-bottom:0 !important;
	line-height:0;
}
/*フォーム*/
@media screen and (max-width: 767px) {
	#body_reservation table.default th,#body_reservation table.default td{
		display:block;
		max-width:100%;
	}
	input[type="text"],
	input[type="email"],
	input[type="tel"],
	input[type="number"],
	input[type="password"],
	input[type="search"],
	input[type="url"]{
		max-width:15em;
	}
	.calendar td .buttons button,
	.calendar li button{
		font-size:0.75rem;
	}
}

dl.dl_form {
	margin: 0 auto 1em;
	border-top: 1px dotted rgba(var(--main-rgb),1);
}
dl.dl_form div {
  margin: 0px 0;
  border-bottom: 1px dotted rgba(var(--main-rgb),1);
}
@media screen and (min-width: 992px),print {
  dl.dl_form div {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    position: relative;
  }
}
dl.dl_form dt {
  padding: 15px 1em;
	font-weight: bold;
	margin: 0 0 0px;
	background-color:rgba(var(--main-rgb) ,.1);
}
@media screen and (min-width: 992px),print {
  dl.dl_form dt {
    width: 25%;
	flex-grow:2;
  }
}
dl.dl_form dd {
  padding: 15px 1em;
  margin: 0 0 0px;
}
@media screen and (min-width: 992px),print {
  dl.dl_form dd {
    width: 73%;
  }
}

dl.dl_form .any:before,
dl.dl_form .req:before{
	content:'';
	font-weight:normal;
	font-size:70%;
	border-radius:6px;
	padding:3px 2px 2px;
	display:inline-block;
	line-height:1;
	text-align:center;
	margin-right:0.5em;
	content:attr(title);
	width:auto;
	min-width:3em;
}

dl.dl_form .any:before{
  border: 1px solid rgb(var(--gray-rgb));
  color: rgb(var(--gray-rgb));
}
dl.dl_form .req:before{
  color: rgb(var(--red-rgb));
  border: solid 1px rgb(var(--red-rgb));
}

 
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="password"],
input[type="search"],
input[type="url"],
button,
textarea {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background: transparent;
	border: none;
	border-radius: 0;
	outline: none;
	font-size:16px;
	border:solid 1px rgba(150,150,150,1);
	border-radius:5px;
	padding:0.5em;
	background-color:#FFF;
	box-sizing:border-box;
}
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="password"],
input[type="search"],
input[type="url"]{
	width:20em;
}
input[type="number"]{
	width:5em;
}

textarea {
	width:100%;
	height:6em;
}
input::placeholder{
	font-size:0.8rem;
	
}
input[type=checkbox],
input[type=radio] {
	transform: scale(1.5);
	margin: 0 0.75em 0 0.5em;
	accent-color: red; 
}
button{
	border:0;
}

select{
	font-size:16px;
	padding:0.5em;
	background-color:rgba(225,225,225,1);
	border-radius: 5px;
}
ul.calendar{
	list-style-type:none;
	padding-left:0.2em;
}
table.calendar{
}

.calendar td{
	padding:0px;
	min-height:100px;
	vertical-align:top;
	text-align:center;
}
.calendar td .cal_date{
	display:block;
	font-size:1.5em;
	font-weight:bold;
	translate: none;
}
.calendar td .buttons{
}
.calendar li span{
	display:table-cell;
	vertical-align:top;
	padding:0 0.2em;
}
.calendar li span.button_text{
	padding-top:0.2em;
}
.calendar td .buttons button,
.calendar li button{
	margin:10px auto;
	background-color:rgba(var(--close-rgb) , 0.8);
	border-radius:4px;
	box-sizing:border-box;
	color:#000;
	width:100%;
	max-width:100px;
	font-size:0.8rem;
	padding:4px 0px;
	word-break:keep-all;
	white-space:nowrap;
}
.calendar td .buttons button{
	cursor: pointer;
}
.calendar td .buttons button b,
.calendar li button b{
	margin-right:0.2em;
}
.calendar li button{
	width:4em;
	display:inline-block;
	margin:2px 2px;
}
.calendar td button{
	display:block;
	margin:8px 0px;
}
.calendar td button.reserve_vac,
.calendar li button.reserve_vac{
	background-color:rgba(var(--vac-rgb) , 0.7);	
}
.calendar td button.reserve_few,
.calendar li button.reserve_few{
	background-color:rgba(var(--few-rgb) , 0.7);	
}
.calendar td button.reserve_ful,
.calendar li button.reserve_ful{
	cursor:auto;
	background-color:rgba(var(--ful-rgb) , 0.7);	
}
.calendar td button.reserve_pri,
.calendar li button.reserve_pri{
	cursor:auto;
	background-color:rgba(var(--pri-rgb) , 0.7);	
}
.calendar td button.reserve_out,
.calendar li button.reserve_out{
	cursor:auto;
}

.calendar td button:disabled,
.calendar li button:disabled{
	cursor:auto;
}
.calendar td.not_reservable{
	background-color:rgba(200, 200, 200, 0.4);
	opacity:0.6;
}
.calendar td.not_reservable div{
	min-height:1em;
}
button.private{
	background-color:rgba(192, 0, 0, 1);
	color:#FFF;
	border-color:rgba(128, 0, 0, 1);
}

.primary_button,
.secondary_button{
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background: transparent;
	border: none;
	width:43%;
	max-width:170px;
	text-align:center;
	padding:15px 5px;
	font-size:1.1rem;
	margin:0 2%;
	font-weight:normal;
	border-radius:5px;
	box-shadow:0 1px 1px rgba(0,0,0,0.2);
	background-color:rgba(var(--main-rgb),1);
	color:#FFF;
	cursor: pointer;
}
.primary_button:hover{
	background-color:rgba(var(--gray-rgb),1);
}
.secondary_button{
	background-color:rgba(var(--gray-rgb),1);
}


#step{
	display: flex;
	flex-wrap: wrap;
	margin:0 0 20px;
	padding:0;
	list-style:none;
}
#step li{
	position: relative;
	text-align: center;
	padding: 0px 0;
	margin:0;
	flex-grow:2;
}
#step li span{
	display:block;
	position: relative;
	background: rgba(var(--gray-rgb),1);
	color: #FFF;
	height:40px;
	line-height:40px;
}
#step li:not(:last-child) span::before,
#step li:not(:last-child) span::after {
	position: absolute;
	z-index: 2;
	top: 0;
	bottom: 0;
	left: 100%;
	content: '';
	border: 20px solid transparent;
	border-left: 10px solid rgba(var(--gray-rgb),1);
	margin: auto;
}
#step li:not(:last-child) span::before {
	margin-left: 2px;
	border-left-color: #FFF;
}

#step li span.current {
	background:rgba(var(--main-rgb) ,1);
	color: #FFF;
}
#step li:not(:last-child) span.current:after {
    border-left-color:rgba(var(--main-rgb) ,1);
}
