@charset "utf-8";
/*フォーム*/
#form_wrapper {
    width: 96%;
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
}
form#contact_form {
    border: 1px solid #edd2a3;
    padding: 30px 5%;
    margin-top: 20px;
}
.red{
	color: #b22222;
}
.center{
	text-align: center;
}
.contact_01 {
    display: flex;
	flex-wrap: wrap;
    margin-bottom: 10px;
    padding-bottom: 10px;
}
.contact_01-1 {
    width: 12em;
    padding-top: 8px;
    font-weight: bold;
}
.confirmation .contact_01-1 {
    padding-top: 0;
}
.contact_01-2{
    width: calc(100% - 12em);	
}
.contact_01-2 .text {
    font-size: 0.85em;
    line-height: 160%;
}
/*必須アイコン*/
.contact_01-1 .hissu {
    color: #fff;
    margin-left: 0.5em;
    background: #b22222;
    display: inline-block;
    padding: 3px 0.5em;
    font-size: 0.75em;
    line-height: 100%;
}
/*入力フォーム*/
input[type="text"],
input[type="tel"],
input[type="email"],
select,
textarea.textarea{
    -webkit-border-radius : 0;
    -webkit-appearance : none;
    -webkit-tap-highlight-color : rgba(0,0,0,0);
    border: 1px solid #ccc;
    border-radius: 3px;
    padding: 10px;
    width: 100%;
}
input[type="radio"] {
    display: block;
    opacity: 0;
    height: 0;
    font-size: 0;
    line-height: 0;
    margin: 0;
}
textarea.textarea{
	height: 10em;
}
input[name*="zip"],
input[name*="day_"]{
    width: 6.5em;
    margin-right: 0.5em;
}
.radio_flex,
.check_flex{
	padding-top: 10px;
	padding-bottom: 10px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
}
.radio_flex label {
    display: flex;
    align-items: center;
    margin-right: 1em;
}
.check_flex label {
    margin-right: 1em;
}
.check_column {
    width: 100%;
    display: flex;
    align-items: center;
    margin-bottom: 10px;
    line-height: 140%;
}
.check_column label {
    padding-left: 0.3em;
    margin-right: 1em;
}
.check_column input[type="text"] {
    width: calc(100% - 7em);
    background-color: #ccc;
    pointer-events: none;
}
.check_column input[name*="kento"]:checked ~ input[type="text"]{
    pointer-events: all;
    background-color: #ffffff;
}
/*ラジオボタンのデザイン*/
.radio_flex label::before {
    content: "";
    display: block;
    width: 0.8em;
    height: 0.8em;
    border: 0.1em solid #fff;
    box-shadow: 0 0 0 0.1em #ccc;
    border-radius: 50%;
    margin-right: 0.25em;
	background: #ffffff;
}
/*ラジオボタンの色*/
input#type01:checked ~ .contact_type .radio_flex label[for="type01"]::before,
input#type02:checked ~ .contact_type .radio_flex label[for="type02"]::before,
input#type03:checked ~ .contact_type .radio_flex label[for="type03"]::before,
input#type04:checked ~ .contact_type .radio_flex label[for="type04"]::before,
input#sex_male:checked ~ .contact_sex .radio_flex label[for="sex_male"]::before,
input#sex_female:checked ~ .contact_sex .radio_flex label[for="sex_female"]::before,
input#sex_noanswer:checked ~ .contact_sex .radio_flex label[for="sex_noanswer"]::before,
input#pay01:checked ~ .contact_pay .radio_flex label[for="pay01"]::before,
input#pay02:checked ~ .contact_pay .radio_flex label[for="pay02"]::before,
input#pay03:checked ~ .contact_pay .radio_flex label[for="pay03"]::before{
	background: #000000;
}
label + input[type="text"] {
    width: auto;
}

/*表示切り替え*/
.contact_01.product_contacts,
.contact_01.other_contacts{
	display: none;
}
input#type01:checked ~ .contact_01.product_contacts,
input#type04:checked ~ .contact_01.other_contacts{
    display: flex;
}
/*個人情報保護方針*/
#contact_privacy {
    border: 1px solid #cccccc;
    padding: 10px;
    height: 27em;
    overflow: scroll;
    font-size: 0.875em;
    line-height: 160%;
}
#contact_privacy .ttl {
    font-size: 1.2em;
    margin: 0 0 10px;
    border-bottom: 1px solid #000;
	font-weight: bold;
}
#contact_privacy .text_wrap {
	margin-bottom: 20px;
}
.privacy_check label {
    display: block;
    background: #ededed;
    border-radius: 15px;
    width: calc(100% - 12em);
    margin-left: auto;
    padding: 0.5em 0;
}
.privacy_check{
	text-align: center;
    width: 100%;
}
/*次へボタン・戻るボタン*/
.btn_flex {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: row-reverse;
    margin-top: 50px;
    margin-bottom: 50px;
}
.back_btn,
.ok_btn {
	display: block;
    border: 1px solid #cccccc !important;
    padding: 10px;
    font-size: 1em;
    margin-left: 10px;
    margin-right: 10px;
    background: #cccccc;
    width: 15em;
    text-align: center;
    color: inherit;
	cursor: pointer;
    border-radius: 8px !important;
	transition: all ease 200ms;
}
.ok_btn {
    background: #b22222;
    color: #ffffff;
    border: 1px solid #b22222 !important;
}
input.back_btn:hover,
input.ok_btn:hover{
	background: #ffffff;
	color: #000000;
}
@media (min-width:761px) {
}
@media (max-width:760px){
	/*フォーム*/
	.contact_01 {
		display: block;
	}
input#type01:checked ~ .contact_01.product_contacts,
input#type04:checked ~ .contact_01.other_contacts{
		display: block;
	}
	.contact_01-1,.contact_01-2{
		width: 100%;
	}
	.privacy_check label{
		width: 100%;
	}
}

@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
 .mainphoto_txt_01:not(:target) {
 padding-right: 1.1em; /* IE10（\9を消せばIE11にも適用） */
 }
 }
