@charset "utf-8";

/* ---------------------------
チェックボックス装飾
----------------------------- */

label.check_label {
	cursor:pointer;
	position:relative;
	padding-left:35px;
	overflow:hidden;
	display:inline-block;
	font-weight: bold;
}

label.check_label:before {
	content:'';
	position:absolute;
	width:20px;
	height:20px;
	left:0;
	top:0;
	border:1px solid #B3B3B3;
	z-index:3;
}
label.check_label input[type="checkbox"] {
	-moz-appearance:none;
	-webkit-appearance:none;
	position:absolute;
	left:0px;
	width:20px;
	height:20px;
	display:block;
	z-index:2;
	margin:0px;
	padding:0px;
	border: none;
	background:#fff;
}
label.check_label input[type="checkbox"]:checked:after {
	content:'';
	position:absolute;
	top:40%;
	left:6px;
	display:block;
	margin-top:-8px;
	width:8px;
	height:12px;
	border-right:3px solid #f34772;
	border-bottom:3px solid #f34772;
	transform:rotate(45deg);
	-webkit-transform:rotate(45deg);
	-moz-transform:rotate(45deg);
	z-index:1;
}

/* ---------------------------
ラジオボタン装飾
----------------------------- */

label.radio_label {
	cursor:pointer;
	position:relative;
	overflow:hidden;
	display:inline-block;
	box-sizing:border-box;
	text-align:center;
	padding:0 0 40px 0;
	width:100%;
	font-weight:bold;
}
label.radio_label {
	width:30px\9;
}
label.radio_label:before {
	content:'';
	position:absolute;
	width:17px;
	height:17px;
	left:50%;
	top:30px;
	border:2px solid #666;
	border-radius:50%;
	z-index:3;
	margin-left:-9px;
}
label.radio_label:after {
	content:'';
	position:absolute;
	width:15px;
	height:15px;
	border-radius:100%;
	left:50%;
	top:33px;
	margin-left:-6px;
	background-color:#f34772;
	z-index:1;
}
label.radio_label input[type="radio"] {
	appearance:none;
	-moz-appearance:none;
	-webkit-appearance:none;
	position:absolute;
	z-index:2;
	width:19px;
	height:19px;
	left:50%;
	top:28px;
	margin-left:-30px;
	box-shadow:23px 2px #FFF;
	border:none;
}

@media screen and (-ms-high-contrast:active), (-ms-high-contrast:none) {
	label.radio_label input[type="radio"] {
		width:23px;
		margin-left:-36px;
	}
}
label.radio_label input[type="radio"]:checked {
	box-shadow:none;
}
label.radio_label input[type="radio"]:focus {
	opacity:0;
	box-shadow:20px -1px #FFF;
}
label.radio_label input[type="radio"]:focus {
	opacity:1/9;
}

@media screen and (max-width:767px) {
	label.radio_label {
		padding:0 0 0 40px;
		text-align:left;
	}
	label.radio_label:before {
		left:15px;
		top:0;
	}
	label.radio_label:after {
		left:15px;
		top:3px;
	}
	label.radio_label input[type="radio"] {
		left:15px;
		top:-3px;
	}
}


/* チェックボックス
========================================== */

.input {
	padding-left:30px;
	position:relative;
	cursor:pointer;
}
.input input {
	position:absolute;
	z-index:-1;
	opacity:0;
}
.control__indicator {
	position:absolute;
	top:-2px;
	left:0;
	height:20px;
	width:20px;
	background:#e6e6e6;
}
.control--radio .control__indicator {
	border-radius:50%;
}
.control:hover input ~ .control__indicator,
.input input:focus ~ .control__indicator {
	background:#ccc;
}
.input input:checked ~ .control__indicator {
	background:#2aa1c0;
}
.control:hover input:not([disabled]):checked ~ .control__indicator,
.input input:checked:focus ~ .control__indicator {
	background:#0e647d;
}
.input input:disabled ~ .control__indicator {
	background:#e6e6e6;
	opacity:0.6;
	pointer-events:none;
}
.control__indicator:after {
	content:'';
	position:absolute;
	display:none;
}
.input input:checked ~ .control__indicator:after {
	display:block;
}
.control--checkbox .control__indicator:after {
	left:8px;
	top:4px;
	width:3px;
	height:8px;
	border:solid #fff;
	border-width:0 2px 2px 0;
	transform:rotate(45deg);
}
.control--checkbox input:disabled ~ .control__indicator:after {
	border-color:#7b7b7b;
}
.control--radio .control__indicator:after {
	left:7px;
	top:7px;
	height:6px;
	width:6px;
	border-radius:50%;
	background:#fff;
}
.control--radio input:disabled ~ .control__indicator:after {
	background:#7b7b7b;
}

/* 入力項目(表)の装飾
========================================== */

dl {
	border-bottom:1px #BEBEAF dashed;
	padding:20px 0;
}
dl:after {
	content:".";
	display:block;
	clear:both;
	height:0;
	visibility:hidden;
	font-size:0;
}
dl > dt {
	font-weight:bold;
}
span.required {
	background:#FFCDD2;
	color:#B71C1C;
	font-size:13px;
	padding:5px 10px;
	border-radius:8px;
	margin:0 10px;
}
br + span.required {
	margin:0;
}
dl > dd,
dl > dd + dt {
	max-width:850px;
	margin:0 auto;
}
dl > dd + dt + dd {
	margin-top:10px;
}
dl > dd {
	font-size:14px;
}
dl > dd + dt {
	margin:20px auto 0;
	font-size:14px;
}
dl dd textarea {
	margin-top:10px;
}
dl dd input.w100 { width:100px; }
dl dd input.w200 { width:200px; }
dl dd input.w280 { width:280px; }
dl dd input.w300 { width:300px; }

@media screen and (max-width:767px) {
	dl {
		border-bottom:none;
		padding:10px 0;
	}
	dl dd input.w280 {
		width:85%;
	}
	dl dd input.w300 {
		width:100%;
	}
	dl > dd + dt + dd {
		margin-top:0px;
	}
	dl > dd + dt {
		margin:10px auto 0;
	}
}

input {
	border-radius:8px;
	padding:5px 10px;
	font-size:16px;
	color:#333326;
	margin-right:10px;
}
dl dd [type=text],
dl dd [type=email] {
	width:85%;
}
dl dd input:focus {
	border:solid 1px #EEA34A;
}
dl dd textarea {
	border-radius:8px;
	padding:5px 10px;
	font-size:16px;
	width:100%;
}
@media screen and (max-width:767px) {
	input[type=text],
	input[type=email],
	input[type=password]{
		padding:0.5em;
	}
	select {
		padding:0.5em;
	}
	textarea {
		height:5em;
	}
}
/* 入力項目を横並び
========================================== */

dl.row {
	display:table;
	width:100%;
}
dl.row dt {
	display:table-cell;
	width:30%;
}
dl.row dd {
	display:table-cell;
	width:70%;
	border-left:2px solid rgba(0, 0, 0, 0.2);
	padding-left:20px;
}
@media screen and (max-width:767px) {
	dl.row + dl.row {
	}
	dl.row {
		margin-top:15px;
		display:block;
		width:100%;
		padding:0;
	}
	dl.row dt {
		font-size:14px;
		display:block;
		width:100%;
		padding:0;
		background:rgba(32, 89, 166, 0.2);
		padding:10px;
	}
	dl.row dd {
		font-size:14px;
		display:block;
		width:100%;
		padding:0;
		margin-top:10px;
		padding-bottom:15px;
		border-left:none;
	}
	dl.row dd {
	}
	dl.row dd dl.row {
		width:100%;
		padding-bottom:10px;
		margin-top:10px;
	}
	dl.row dd dl.row:last-of-type {
		padding-bottom: 0;
	}
	dl.row dd dl.row dt {
		padding:5px;
		background:rgba(32, 89, 166, 0.08);
	}
	dl.row dd dl.row dd {
		padding:0px;
	}
}

dl.row dd > dl.row:last-of-type {
border:none;
}

	/* ---------------------------
チェックボックス / ラジオ（横並び）
----------------------------- */

dl dd ul.row {
	display:table;
	width:100%;
	margin:20px auto 0;
	border:1px solid rgba(0, 0, 0, 0.1);
	border-radius:15px;
	padding:20px;
	background:#F5F5F5;
}
dl dd ul.row.error {
	background:#ffebee;
}
dl dd ul.row li {
	display:table-cell;
	width:25%;
	border-right:1px solid rgba(0, 0, 0, 0.1);
}
dl dd ul.row li:last-of-type {
	border-right:none;
}
dl dd ul.row li label {
	width:100%;
	display:block;
}
@media screen and (max-width:767px) {
	dl dd ul.row {
		display:block;
		padding:0 0 10px 10px;
	}
	dl dd ul.row li {
		display:block;
		width:100%;
		padding:10px 0 0 0;
		height:30px;
	}
	dl.row dd ul li label {
		font-size:16px;
		margin-top:5px;
	}
}
p.error {
	color:#ef5350;
	border:#ef5350 2px solid;
	font-weight:bold;
	padding:20px 0;
	text-align:center;
	max-width:900px;
	width:80%;
	margin:0 auto;
	position:relative;
	margin-top:20px;
}
p.error:after,
p.error:before {
	content:"";
	position:absolute;
	width:0;
	height:0;
	border-style:solid;
	border-width:18px 12px 0 12px;
	left:50%;
	margin-left:-18px;
}
p.error:after {
	border-color:#ffebee transparent transparent transparent;
	bottom:-14px;
}
p.error:before {
	border-color:#ef5350 transparent transparent transparent;
	bottom:-18px;
}
.error {
	background:#ffebee;
}
/* ---------------------------
チェックボックス / ラジオ（横並び - 区切り線有り）
----------------------------- */
dl.genre {
	padding:15px 0 10px;
	border-top:1px #efefef solid;
	width:100%;
}
dl.genre:first-of-type {
	padding:0 0 10px;
	border-top:none;
}
dl.genre dt {}
dl.genre dd {}
dl.genre dd ul {
	margin-top:15px;
}
dl.genre dd ul li {
	display:inline-block;
}

/* ---------------------------
送信ボタン
----------------------------- */

ul.btnBox {
	margin:40px auto 0;
}
ul.btnBox:after {
	content:"."; display:block; clear:both; height:0; visibility:hidden; font-size:0;
}
ul.btnBox li {
	float:none;
	width:100%;
}
ul.btnBox li + li {
	margin-top:20px
}
ul.btnBox li .btnReturn,
ul.btnBox li .btnSend {
}
.btnReturn,
.btnSend {
	width:320px;
	margin:0 auto;
	display:block;
	height:50px;
	line-height:50px;
	font-weight:bold;
	font-size:16px;
	text-align:center;
	border-radius:5px;
	letter-spacing:0.05em;
}
.btnReturn {
	background:none;
	color: rgba(0,0,0,0.5);
	border:1px solid rgba(0,0,0,0.2);
}
.btnSend {
	background:#ff7979;
	color:#FFF;
	position:relative;
	box-shadow: 0px 3px 2px #ac7070;
}
.btnSend:after {
	content:'';
	width:18px;
	height:18px;
	display:block;
	background:#fff;
	border-radius: 10px;
	position:absolute;
	right:15px;
	top:50%;
	margin-top: -9px;
}
.btnSend:before {
	content:'';
	width:6px;
	height:6px;
	display:block;
	border-bottom: 2px solid #ff7979;
	border-right: 2px solid #ff7979;
	transform: rotate(-45deg);
	position:absolute;
	right:21px;
	top:50%;
	margin-top: -4px;
	z-index: 2;
}
@media screen and (max-width:767px) {
	.btnReturn,
	.btnSend {
		width:80%;
	}
}

dl.moreLink {
	max-width:630px;
	margin:60px auto 0;
	box-sizing: border-box;
}
dl.moreLink dt {
	background:rgba(32, 89, 166, 0.8);
	text-align:center;
	color:#fff;
	padding:10px 0;
	box-sizing: border-box;
}
dl.moreLink dd {
	background:#E1F5FE;
	padding:30px;
}
dl.moreLink dd ul {}
dl.moreLink dd ul li {}
dl.moreLink dd ul li:nth-of-type(n+2) {
	margin-top:20px;
}
dl.moreLink dd ul li a {
	font-weight:bold;
	width:360px;
	padding:30px;
	box-sizing: border-box;
	margin: 0 auto;
	display:block;
	background:#fff;
	font-size:18px;
	color:#2059a6;
	position:relative;
}
dl.moreLink dd ul li a:after {
	content:"";
	position:absolute;
	width:5px;
	height:5px;
	border-top:2px solid #2059a6;
	border-right:2px solid #2059a6;
	-webkit-transform:rotate(45deg);
	transform:rotate(45deg);
	right:25px;
	top:38px;
}
@media screen and (max-width:767px) {
	dl.moreLink {
		margin:10px 10px 0 10px;
		padding:0;
	}
	dl.moreLink dt {
		margin-top:0;
	}
	dl.moreLink dd {
		padding:0;
	}
	dl.moreLink dd ul li {
		border-bottom:1px solid rgba(0, 0, 0, 0.2);
	}
	dl.moreLink dd ul li:nth-of-type(n+2) {
		margin-top:0;
	}
	dl.moreLink dd ul li a {
		width:100%;
		max-width:100%;
		font-size:14px;
		text-align:left;
		height:auto;
		line-height:inherit;
		padding:10px 50px 10px 5px;
	}
	dl.moreLink dd ul li a:after {
		top:50%;
		margin-top:-5px;
	}
}

/* ---------------------------
カレンダー表示
----------------------------- */

.calendar {}
.calendar input {
	max-width:10em;
}
.calendar img {
	width:32px;
	margin-top:1px;
}


.wrap960 ul.row01 li {
	min-width: 100%;
}
.wrap960 ul.row01 li label.radio_label {
	text-align: left;
	text-indent: 30px;
	padding-bottom: 0;
	min-height: 21px;
}
.wrap960 ul.row01 li label.radio_label:before {
	left: 10px;
	top: 0px;
}
.wrap960 ul.row01 li label.radio_label:after {
	left: 10px;
	top: 3px;
}
.wrap960 ul.row01 li label.radio_label input[type="radio"] {
	left: 10px;
	top: -2px;
}
@media screen and (max-width:767px) {

	.wrap960 ul.row01 li label.radio_label {
		text-align: left;
		text-indent: 0;
	}
}