@charset "utf-8";
/* CSS Document */

:root {
	--form-font-size: 16px;
	--form-border-color: #d0d0d0;
	--form-border-radius: 3px;
	--form-padding: 10px;
}

#Form input,
#Form button,
#Form select,
#Form textarea {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background: transparent;
	border: none;
	border-radius: 0;
	font: inherit;
	outline: none;
}

#Form input[type='text'],
#Form textarea {
	font-size: var(--form-font-size);
	border: 1px solid var(--form-border-color);
	border-radius: var(--form-border-radius);
	padding: var(--form-padding);
}

/* セレクタ */
#Form .typeSelect label {
	position: relative;
}
#Form .typeSelect label:before,
#Form .typeSelect label:after {
	position: absolute;
	right: 15px;
	content: '';
	width: 9px;
	height: 6px;
	background-color: #535353;
	pointer-events: none;
}
#Form .typeSelect label:before {
	top: calc(50% - 9px);
	clip-path: polygon(50% 0, 100% 100%, 0 100%);
}
#Form .typeSelect label:after {
	bottom: calc(50% - 9px);
	clip-path: polygon(0 0, 50% 100%, 100% 0);
}
#Form .typeSelect label select {
	min-width: 230px;
	font-size: var(--form-font-size);
	color: #333333;
	background-color: #fff;
	border: 1px solid var(--form-border-color);
	border-radius: var(--form-border-radius);
	padding: var(--form-padding);
	cursor: pointer;
}

/* チェックボックス */
#Form .typeCheck input[type=checkbox] {
	display: none;
}
#Form .typeCheck label {
	display: inline-block;
	width: auto;
	box-sizing: border-box;
	padding: 5px 30px;
	cursor: pointer;
	position: relative;
}
#Form .typeCheck label:before {
	position: absolute;
	top: 50%;
	left: 5px;
	content: '';
	display: block;
	width: 16px;
	height: 16px;
	background: #fff;
	border: 1px solid var(--form-border-color);
	border-radius: 3px;
	margin-top: -8px;
}
#Form .typeCheck label:after {
	position: absolute;
	top: 50%;
	left: 8px;
	content: '';
	display: block;
	width: 8px;
	height: 16px;
	border-right: 3px solid var(--main-color);
	border-bottom: 3px solid var(--main-color);
	transform: rotate(45deg) translate3d(0,2px,0) scale3d(.7,.7,1);
	transition: transform .2s ease-in-out, opacity .2s ease-in-out;
	margin-top: -12px;
	opacity: 0;
}
#Form input[type=checkbox]:checked + label:before {
	border-color: #666;
}
#Form input[type=checkbox]:checked + label::after {
	opacity: 1;
	transform: rotate(45deg) scale3d(1,1,1);
}

/* ラジオボタン */
#Form input[type=radio] {
	display: none;
}
#Form .typeRadio label {
	display: inline-block;
	width: auto;
	padding: 5px 30px;
	cursor: pointer;
	position: relative;
}
#Form .typeRadio label:before {
	position: absolute;
	top: 50%;
	left: 5px;
	content: '';
	display: block;
	width: 16px;
	height: 16px;
	background: #fff;
	border: 1px solid var(--form-border-color);
	border-radius: 50%;
	margin-top: -8px;
}
#Form .typeRadio label:after {
	position: absolute;
	top: 50%;
	left: 9px;
	content: '';
	display: block;
	width: 10px;
	height: 10px;
	background: var(--main-color);
	border-radius: 50%;
	transform: scale3d(.3,.3,1);
	transition: transform .2s ease-in-out, opacity .2s ease-in-out;
	opacity: 0;
	margin-top: -4px;
}
#Form input[type=radio]:checked + label:before {
	border-color: #666;
}
#Form input[type=radio]:checked + label:after {
	opacity: 1;
	transform: scale3d(1,1,1);
}
