@charset "utf-8";
@import url(../css/reset.css);
@import url(../css/base.css);
@import url(../css/common.css);


a.res_err_link {
	color: blue;
}

.res_red{
	color: red;
}

.res_blue{
	color: blue;
}

.res_reqnote {
	text-align: left;
	padding-left: 1em;
	margin-top: .5em;
}

.res_bg_ly {
	background-color: #fff8dc;
    padding: 0.5em 0.5em;
    width: 100%;
    display: inline-block;
}

.res_section {
	margin-top: 20px;
	margin-bottom: 20px;
}

.reserve_box{
	width: 94%;
	margin: 0 auto;
}

.res_table {
	border-collapse: collapse;
	width: 100%;
	display: block;
	font-size: 0.9em;
}

tbody {
	width: 100%;
	display: block;
}

tr {
	display: block;
}
th, td {
	display: block;
}

.res_table_thTit {
	padding-top: 1em;
	padding-bottom: 0.2em;
}

.res_table_thTitTime {
	padding-top: 0.25em;
	padding-left: 1em;
}

.res_sub_th {
	width: 2em;
}

.res_sub_tdTime {
	padding-bottom: 0.5em;
}

input[type="text"] {
	padding-top: 0;
	padding-bottom: 0;
	width: 60%;
}

.res_sub_tdDate input[type="text"] {
	width: 42.5%;
}

input[type="text"]::placeholder {
	color: #ccc;
}

select {
	padding-top: 0.5em;
	padding-bottom: 0.5em;
	max-width: 95%;
}

textarea {
	padding: 0.25em;
	width: 26em;
	max-width: 100%;
	height: 7em;
}

.res_policy_box {
	text-align: center;
	margin: 1em auto 0.5em;
	font-size: 0.9em;
}

.res_policy_link a {
	color: blue;
	font-weight: bold;
}

.res_buttonWrap {
	text-align: center;
}

.res_button {
	display       : inline-block;
	border-radius : 12px;       /* 角丸       */
	text-align    : center;      /* 文字位置   */
	cursor        : pointer;     /* カーソル   */
	padding       : 12px 34px;   /* 余白       */
	background    : #ffff4d;     /* 背景色     */
	color         : #330033;     /* 文字色     */
	line-height   : 1em;         /* 1行の高さ  */
	transition    : .3s;         /* なめらか変化 */
	box-shadow    : 7px 7px 8px #666666;  /* 影の設定 */
	border        : 2px solid #ffff4d;    /* 枠の指定 */
	font-size: 12px;
}

.res_button:hover {
	box-shadow    : none;        /* カーソル時の影消去 */
	color         : #ffff4d;     /* 背景色     */
	background    : #330033;     /* 文字色     */
}

.res_button--send {
	padding       : 12px calc(2.5em + 34px);   /* 余白       */
}

.res_button--back {
	padding       : 12px 44px;   /* 余白       */
	background-color: #ffffff;
}

.res_button--top {
	text-align: center;
	margin-top: 30px;
}

.itemError {
	color: #ff0000;
	font-size: 0.8em;
	padding-left: 1em;
	padding-top: 0.25em;
}

#formErrorInner {
	background-color: #ffdada;
	color: #ff0000;
	margin: 2em auto;
	padding: 0.5em 1em;
}

#formErrorInner ul {
	padding-left: 2em;
}


/*===============================================
	画面の横幅が320px以上に適用
===============================================*/
@media screen and (min-width: 320px){

	/** common **/
	.wrap{
		font-size: 1.5em;
	}

	/** reserve **/
	.reserve_box{
		width: 94%;
		margin: 0 auto 40px auto;
		padding-top: 30px;
	}
	.reserve_box h2{
		font-weight: bold;
		font-size: 1.5em;
	}
	.res_inner{
		width: 94%;
		margin: 0 auto 40px auto;
		padding-top: 30px;
	}

	.res_form{
		width: 100%;
		margin: 0 auto 10px auto;
    }

	.res_table{
        font-size: 0.9em;
		margin: 1.75em auto 0 auto;
		width: calc(335/375*100vw);
	}

	.res_policy_box {
		font-size: 0.9em;
	}
	.res_policy_link {
		font-size: 0.8em;
	}

	.res_buttonWrap {
		padding-top: 20px;
	}
	.res_button {
		font-size: 15px;
	}

	/** footer **/
	footer{
		margin-top: 0;
		padding-top: 40px;
	}
}

/*===============================================
	画面の横幅が640px以上に適用
===============================================*/
@media screen and (min-width: 640px){

	.res_sub_tdDate input[type="text"] {
		width: 33%;
	}

	.res_table{
		width: calc(456/640*100vw);
	}

	tr {
		display: table-row;
	}

	th, td {
		display: table-cell;
	}

	select {
		padding-top: 0.35em;
		padding-bottom: 0.35em;
	}

	.res_buttonWrap {
		padding-top: 20px;
		text-align: center;
	}
	.res_button {
		font-size: 18px;
	}
}

/*===============================================
	画面の横幅が768px以上に適用
===============================================*/
@media screen and (min-width: 768px){

	.res_table{
		font-size: 1.5em;
		width: 650px;
	}

	.res_sub_th {
		width: 2em;
	}

	input[type="text"] {
		padding: 0.1em;
	}

	.res_sub_tdDate input[type="text"] {
		width: 36%;
	}

	select {
		padding-top: 0.2em;
		padding-bottom: 0.2em;
	}

	.res_policy_box {
		font-size: 1.25em;
	}
	.res_policy_link {
		margin-bottom: 0.5em;
		font-size: 0.9em;
	}

	.res_button {
		font-size: 20px;
	}
}

/*===============================================
	画面の横幅が1024px以上に適用
===============================================*/
@media screen and (min-width: 1024px){

	.reserve_box{
		width: 980px;
	}
	.reserve_box h2{
		font-size: 2.0em;
	}

	.res_sub_th {
		width: 3em;
	}

	input[type="text"] {
		padding: 0.2em;
	}

	.res_sub_tdDate input[type="text"] {
		width: 27%;
	}

	.res_policy_box {
		font-size: 1.5em;
	}
	.res_policy_link {
		margin-bottom: 0.75em;
		font-size: 0.8em;
	}

	.res_button {
		font-size: 24px;
	}
}
