@charset "utf-8";

/* [google font] */
/* しっぽり明朝 */
@import url('https://fonts.googleapis.com/css2?family=Shippori+Mincho:wght@400;500;700&display=swap');
/* 全角ゴシック */
@import url('https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@400;500;700&display=swap');
/* Play */
@import url('https://fonts.googleapis.com/css2?family=Play:wght@400;700&display=swap');

/*
font-family: 'Shippori Mincho', serif;
font-family: 'Zen Kaku Gothic New', sans-serif;
font-family: 'Play', sans-serif;
*/


/* [CSSリセット] */
html,body,span,
h1,h2,h3,h4,h5,h6,
p,b,em,
a,
dl,dt,dd,
ul,ol,li,
table,tr,th,td,
form {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	vertical-align: baseline;
	font-size: 100%;
	font-weight: normal;
}

table,
tr,
th,
td {
	border-spacing: 0;
	border-collapse: collapse;
}

ul,ol,li {
	list-style: none;
}

img {
	border: none;
	vertical-align: top;
}

em {
	font-style: normal;
}

br {
	letter-spacing: 0;
}

html,
body {
	height: 100%;
	font-size: 10px;
	color: #373737;
	-webkit-text-size-adjust: 100%;
}

* {
	box-sizing: border-box;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
}

body {
	color: #373737;
	font-size: 16px;
	line-height: 1.8;
	font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
}

a:link,
a:visited,
a:hover {
	color: #333;
	outline: none;
	text-decoration: none;
}

input,
textarea {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background: transparent;
	border: none;
	border-radius: 0;
	font: inherit;
	outline: none;
	margin: 0;
	padding: 0;
}

input::-webkit-input-placeholder {
  color: #ccc;
}

input::-moz-placeholder {
  color: #ccc;
}

input:-ms-input-placeholder {
  color: #ccc;
}

input::-ms-input-placeholder {
  color: #ccc;
}

input::placeholder {
  color: #ccc;
}

input[type="submit"] {
	cursor: pointer;
}

main {
	margin: 0 auto;
	width: 100%;
	max-width: 750px;
}

section {
	width: 100%;
}

#error {
	margin: 0 0 40px;
	width: 100%;
	text-align: left;
	float: left;
}

#error p {
	margin-bottom: 10px;
	font-size: 14px;
	color: #FF3939;
}

.form {
	width: 100%;
	float: left;
	margin-bottom: 96px;
}

.form table {
	width: 100%;
	text-align: left;
	border-top: solid 1px #e6e6e6;
}

.form table tr {
	border-bottom: solid 1px #e6e6e6;
}

.form table td b {
	font-weight: 500;
}

.calener {
	padding-bottom: 15px;
	width: 100%;
	display: block;
}

.privacy_policy {
	margin: 10px 0 8px;
	padding: 5px 10px;
	width: 100%;
	height: 100px;
	font-size: 13px;
	text-align: justify;
	background-color: #fafafa;
	box-sizing: border-box;
	border-radius: 0;
	overflow:auto;
	float: left;
}

input.long,
input.href {
	background-color: #fafafa;
	font-size: 16px;
	padding: 6px;
	float: left;
}

input.long {
	width: 100%;
	max-width: 343px;
}

input.href {
	width: 114px;
}

textarea {
	padding: 6px;
	width: 100%;
	height: 150px;
	font-size: 16px;
	background-color: #fafafa;
}

input.calendar {
	background: url(../img/calendar.png) #fafafa right 10px center / 19px 20px no-repeat;
}


label {
	cursor: pointer;
}

label:hover {
	color: #999;
}

input[type="checkbox"],
input[type="radio"] {
	margin-right: 0.1875rem;
}

.radio-input{
  display: none;
}

.radio-input + label{
	padding-left: 20px;
	position:relative;
	margin-right: 20px;
}

.radio-input + label::before{
	content: "";
	display: block;
	position: absolute;
	top: 4px;
	left: 0;
	width: 15px;
	height: 15px;
	border: 1px solid #999;
	border-radius: 50%;
}

.radio-input:checked + label{
	color: #d01137;
}

.radio-input:checked + label::after{
	content: "";
	display: block;
	position: absolute;
	top: 7px;
	left: 3px;
	width: 11px;
	height: 11px;
	background: #ce3838;
	border-radius: 50%;
}

.checkbox-input{
	display: none;
}

.checkbox-parts{
	padding-left: 20px;
	position:relative;
	margin-right: 20px;
}

.checkbox-parts::before{
	content: "";
	display: block;
	position: absolute;
	top: 3px;
	left: 0;
	width: 15px;
	height: 15px;
	border: 1px solid #999;
}

.checkbox-input:checked + .checkbox-parts{
	color: #ce3838;
}

.checkbox-input:checked + .checkbox-parts::after{
	content: "";
	display: block;
	position: absolute;
	top: -2px;
	left: 5px;
	width: 7px;
	height: 14px;
	transform: rotate(40deg);
	border-bottom: 3px solid #ce3838;
	border-right: 3px solid #ce3838;
}

footer {
	padding: 16px 19px 120px;
}

.pagetop {
    position: fixed;
    right: 16px;
    bottom: 32px;
    z-index: 1;
}

/* ---------------------------------- [スマホ版] ---------------------------------- */
@media screen and (max-width: 767px){
	.pc {
		display: none;
	}

	section {
		padding: 40px 16px 0;
	}

	.form-title {
		margin-bottom: 40px;
		width: 100%;
		font-size: 23px;
		line-height: 1.4;
		text-align: center;
		font-weight: 900;
		font-family: yu-mincho-pr6n, sans-serif;
		position: relative;
		/* float: left; */
	}

	.form-title:after {
		position: absolute;
		bottom: -20px;
		left: 0;
		width: 100%;
		height: 20px;
		font-size: 10px;
		color: #D0B058;
		content: '◆◆◆';
	}

	div.form-text {
		margin-bottom: 35px;
		width: 100%;
		font-size: 16px;
		text-align: justify;
		/* float: left; */
	}

	div.form-text .red {
		color: #FF3939;
	}

	.form table th,
	.form table td {
		width: 100%;
		font-size: 16px;
		font-weight: normal;
		float: left;
	}

	.form table th {
		padding: 25px 0 0;
		text-align: left;
	}

	.form table th span {
		float: right;
		font-size: 14px;
	}

	.form table td span.age {
		padding: 5px 0 0 5px;
		display: inline-block;
	}

	.form table th b {
		color: #FF0000;
		font-size: 11px;
	}

	.form table td {
		padding: 15px 0 25px;
	}

	.calener {
		padding-bottom: 15px;
		width: 100%;
		display: block;
		float: left;
	}

	input {
		font-size: 1.5rem;
	}

	#subm {
		margin: 80px 5% 25px;
		width: 90%;
		height: 64px;
		border: 0;
		display: block;
		color: #fff;
		font-size: 16px;
		font-family: yu-mincho-pr6n, sans-serif;
		background: url(../img/submit.png) #000 right 15px center / 6px 11px no-repeat;
		float: left;
	}

	#reset {
		margin: 0 5%;
		width: 90%;
		height: 64px;
		border: 0;
		display: block;
		color: #fff;
		font-size: 16px;
		font-family: yu-mincho-pr6n, sans-serif;
		background-color: #8D8D8D;
		float: left;
	}

	.toi-end {
		padding-bottom: 44px;
		font-size: 16px;
		text-align: justify;
		border-bottom: 1px #D0D0D0 solid;
	}

	.toi-end2 {
		padding: 40px 0 77px;
		font-size: 14px;
		text-align: justify;
	}

	a.top-page {
		margin: 0 5% 25px;
		width: 90%;
		height: 64px;
		color: #fff;
		font-size: 16px;
		text-align: center;
		line-height: 64px;
		background: url(../img/submit.png) #000 right 15px center / 6px 11px no-repeat;
		display: block;
		float: left;
	}

	.timeBox {
		display: flex;
		flex-direction: column;
	}

	.times {
		margin-top: 16px;
	}

}


/* ---------------------------------- [パソコン版] ---------------------------------- */
@media screen and (min-width: 1025px){
	.sp {
		display: none;
	}

	section {
		padding: 80px 0 0;
	}

	.form-title {
		margin-bottom: 40px;
		width: 100%;
		font-size: 23px;
		line-height: 1.4;
		text-align: center;
		font-weight: 900;
		font-family: yu-mincho-pr6n, sans-serif;
		position: relative;
		/* float: left; */
	}

	.form-title:after {
		position: absolute;
		bottom: -20px;
		left: 0;
		width: 100%;
		height: 20px;
		font-size: 10px;
		color: #D0B058;
		content: '◆◆◆';
	}

	div.form-text {
		margin-bottom: 35px;
		width: 100%;
		font-size: 16px;
		text-align: justify;
		/* float: left; */
	}

	div.form-text .red {
		color: #FF3939;
	}

	.form table th {
		padding: 20px 0;
		text-align: left;
		width: 240px;
		vertical-align: top;
		font-weight: normal;
	}

	.form table td span {
		padding: 5px 0 0 5px;
		display: inline-block;
	}

	.form table th b {
		display: none;
	}

	.form table td {
		padding: 25px 0;
	}

	.times {
		padding: 15px 0 0;
		width: 100%;
		float: left;
	}

	.form table td span.checkbox-parts{
		padding: 0 0 0 20px;
		position:relative;
		margin-right: 20px;
	}

	#subm {
		margin: 80px 60px 0 0;
		width: 304px;
		height: 64px;
		border: 0;
		display: block;
		color: #fff;
		font-weight: 900;
		font-size: 16px;
		font-family: yu-mincho-pr6n, sans-serif;
		background: url(../img/submit.png) #000 right 15px center / 6px 11px no-repeat;
		float: right;
	}

	#reset {
		margin: 80px 0 0 60px;
		width: 304px;
		height: 64px;
		border: 0;
		display: block;
		color: #fff;
		font-weight: 900;
		font-size: 16px;
		font-family: yu-mincho-pr6n, sans-serif;
		background-color: #8D8D8D;
		float: left;
	}


	.privacy_policy {
		margin: 10px 0 20px;
	}

	table.pc-long th,
	table.pc-long td {
		width: 100%;
		float: left;
	}

	table.pc-long th {
		padding: 20px 0 8px;
	}

	table.pc-long td {
		padding: 8px 0 20px;
	}

	.toi-end {
		padding-bottom: 44px;
		font-size: 16px;
		text-align: justify;
		border-bottom: 1px #D0D0D0 solid;
	}

	.toi-end2 {
		padding: 40px 0 77px;
		font-size: 14px;
		text-align: justify;
	}

	a.top-page {
		margin: 0 0 25px 223px;
		width: 304px;
		height: 64px;
		color: #fff;
		font-size: 16px;
		text-align: center;
		line-height: 64px;
		background: url(../img/submit.png) #000 right 15px center / 6px 11px no-repeat;
		display: block;
		float: left;
	}

}
