@charset "UTF-8";

.must,
.optical {
	display: inline-block;
	vertical-align: top;
	margin: .25em .3em 0 0;
	font-size: .75em;
	text-align: center;
}

.must {
	background: #182986;
	color: #fff;
}

.optical {
	background: #666;
	color: #fff;
}

input[type="text"],
input[type="email"],
input[type="tel"],
select,
textarea {
	width: 100% !important;
	border-radius: 0;
	border: none;
	background: #f2f3f4;
	font-size: 1em;
}

select {
	max-width: 240px;
}

textarea {
	height: 120px;
	resize: vertical;
}

input::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
	color: #666;
}

input::-moz-placeholder, textarea::-moz-placeholder {
	color: #666;
}

input:-ms-input-placeholder, textarea:-ms-input-placeholder {
	color: #666;
}

input::-ms-input-placeholder, textarea::-ms-input-placeholder {
	color: #666;
}

input::placeholder,
textarea::placeholder {
	color: #666;
}

input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
	color:#666;
}

input:-ms-input-placeholder,
textarea:-ms-input-placeholder {
	color:#666;
}

input::-moz-placeholder,
textarea::-moz-placeholder {
	color: #666;
}

label, button {
	cursor: pointer;
}

#zip {
	max-width: 150px;
}

#num {
	max-width: 140px;
}

.check-list li {
	display: inline-block;
	margin: 2px 13px 2px 22px;
}

input[type="radio"],
input[type="checkbox"] {
	display: none;
}

.radio-lb {
	display: inline-block;
	line-height: 1.3;
	padding: 0 0 0 25px;
	position: relative;
}

.radio-lb::before {
	content: "";
	display: block;
	border: solid 2px #182986;
	border-radius: 50%;
	width: 20px;
	height: 20px;
	position: absolute;
	top: 0;
	left: 0;
}

.radio-lb::after {
	content: "";
	display: block;
	background: #182986;
	border-radius: 50%;
	width: 10px;
	height: 10px;
	position: absolute;
	top: 5px;
	left: 5px;
	opacity: 0;
}

.check-lb {
	display: inline-block;
	line-height: 1.3;
	padding: 0 0 0 22px;
	position: relative;
}

.check-lb::before {
	content: "";
	display: block;
	border: solid 2px #182986;
	width: 15px;
	height: 15px;
	position: absolute;
	top: 1px;
	left: 0;
}

.check-lb::after {
	content: "";
	position: absolute;
	top: -2px;
    left: 6px;
	-webkit-transform: rotate(45deg);
	        transform: rotate(45deg);
	display: block;
	width: 8px;
	height: 14px;
	border-right: solid 3px #182986;
	border-bottom: solid 3px #182986;
	opacity: 0;
}

input[type="radio"]:checked + .radio-lb::after,
input[type="checkbox"]:checked + .radio-lb::after,
.mfp_checked .radio-lb::after,
input[type="radio"]:checked + .check-lb::after,
input[type="checkbox"]:checked + .check-lb::after,
.mfp_checked .check-lb::after {
	opacity: 1;
}

/*input[type="file"] {
	display: none;
}

.file-item {
	padding: 10px 40px;
    color: #ffffff;
    background-color: #384878;
}

.file-lb {
	margin: 10px 0 0 0;
}*/

.form__input > div {
	border-bottom: solid 1px #e2e7ef;
}

.form__input > div > dt,
.form__input > div > dd {
	position: relative;
}

.form__input > div > dd > ul > li + li {
	margin-top: 10px;
}

.form__input .memo {
	margin-top: 1.5em;
	color: #666;
	font-size: .75em;
	line-height: 1.5;
}

.form__input .memo li + li {
	margin-top: 0;
}

.form__submit {
	text-align: center;
}

.form__submit button {
	position: relative;
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    max-width: 340px;
    width: 100%;
    height: 62px;
    border-radius: 3em;
	border: none;
    background: #182986;
    color: #fff;
    font-size: 16px;
    text-decoration: none;
    overflow: hidden;
	-webkit-transition: opacity .4s;
	transition: opacity .4s;
}

.form__submit button::before {
	content: "\f054";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    position: absolute;
    right: 23px;
    top: 50%;
    -webkit-transform: translate(0, -50%);
            transform: translate(0, -50%);
    font-size: 0.875em;
}

.form__submit button:hover {
	opacity: .7;
}


@media screen and (min-width: 900px) {

	.must,
	.optical {
		padding: .46em .77em;
		line-height: 1;
	}

	input[type="text"],
	input[type="email"],
	input[type="tel"],
	select,
	textarea {
		padding: 17px 12px;
	}

	.form__box {
		margin-bottom: 80px;
	}

	.form__input {
		display: table;
		border-collapse: collapse;
		width: 100%;
	}

	.form__input > div {
		display: table-row;
	}

	.form__input > div > dt,
	.form__input > div > dd {
		display: table-cell;
		vertical-align: top;
	}

	.form__input > div > dt {
		width: 280px;
		padding: 35px 20px 20px 0;
	}

	.form__input > div > dd {
		padding: 20px 0;
	}

	.form__input > div.check > dt {
		padding: 18px 20px 10px 0;
	}

	.form__input > div.check > dd {
		vertical-align: middle;
		padding: 10px 0;
	}

	.form__input > div > dd.product-num {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		    -ms-flex-align: center;
		        align-items: center;
	}

	.form__input > div > dd.product-num .product-num--01 {
		width: 100%;
	}

	.form__input > div > dd.product-num .product-num--02 {
		-ms-flex-negative: 0;
		    flex-shrink: 0;
		padding-left: 28px;
	}

	.form__submit {
		margin-bottom: 55px;
	}

}

@media screen and (max-width: 899px) {

	.must,
	.optical {
		padding: .3em .77em;
		line-height: 1.5;
	}

	input[type="text"],
	input[type="email"],
	input[type="tel"],
	select,
	textarea {
		padding: 17px 12px;
	}

	.form__box {
		margin-bottom: 40px;
	}
	
	.form__input > div {
		padding: 18px 0 23px;
	}
	
	.form__input > div > dt {
		padding-bottom: 12px;
	}

	.form__submit {
		margin-bottom: 40px;
	}

}