@charset "utf-8";

/* ===== form.css ===== */
/* -- redTxt -- */
.redTxt {
    font-size: 1.2rem;
    line-height: 1.5;
    color: #ED4A49;
    display: block;
}

/* -- input -- */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"] {
    color: #115680;
    line-height: 68px;
    display: block;
    padding: 0 20px;
    height: 68px;
    width: 100%;
    border: 1px solid #F6F7F9;
    border-radius: 4px;
    background: #F6F7F9;
}
input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
input[type="number"]:focus {
    outline: none;
}
input[type="text"]::-webkit-input-placeholder,
input[type="email"]::-webkit-input-placeholder,
input[type="tel"]::-webkit-input-placeholder,
input[type="number"]::-webkit-input-placeholder { color: rgba(0, 0, 0, 0.3); }
input[type="text"]:-moz-placeholder,
input[type="email"]:-moz-placeholder,
input[type="tel"]:-moz-placeholder,
input[type="number"]:-moz-placeholder {
    color: rgba(0, 0, 0, 0.3);
    opacity: 1;
}
input[type="text"]::-moz-placeholder,
input[type="email"]::-moz-placeholder,
input[type="tel"]::-moz-placeholder,
input[type="number"]::-moz-placeholder {
    color: rgba(0, 0, 0, 0.3);
    opacity: 1;
}
input[type="text"]:-ms-input-placeholder,
input[type="email"]:-ms-input-placeholder,
input[type="tel"]:-ms-input-placeholder,
input[type="number"]:-ms-input-placeholder { color: rgba(0, 0, 0, 0.3); }
input[type="text"]::-ms-input-placeholder,
input[type="email"]::-ms-input-placeholder,
input[type="tel"]::-ms-input-placeholder,
input[type="number"]::-ms-input-placeholder { color: rgba(0, 0, 0, 0.3); }

/* -- checkbox -- */
.checkbox {
    margin-bottom: -18px;
}
.checkbox label {
    user-select: none;
    display: inline-block;
    margin-bottom: 18px;
}
.checkbox label:not(:last-child) {
    margin-right: 24px;
}
.checkbox input[type="checkbox"] {
    cursor: pointer;
    position: relative;
    top: -3px;
    margin: 0 14px 0 2px;
    width: 20px;
    height: 20px;
    background: #F6F7F9;
    border: 1px solid #F6F7F9;
    border-radius: 2px;
}
.checkbox input[type="checkbox"]:checked {
    background: #F6F7F9 url(../img/common/checkbox_checked.svg) no-repeat center/ 100% auto!important;
    border-color: #F6F7F9;
}

/* -- textarea -- */
textarea {
    color: #115680;
    display: block;
    padding: 15px 20px;
    height: 130px;
    width: 100%;
    border: 1px solid #F6F7F9;
    border-radius: 4px;
    background: #F6F7F9;
}
textarea::-webkit-input-placeholder { color: #9F9F9F; }
textarea:-moz-placeholder {
    color: #9F9F9F;
    opacity: 1;
}
textarea::-moz-placeholder {
    color: #9F9F9F;
    opacity: 1;
}
textarea:-ms-input-placeholder { color: #9F9F9F; }

/* -- selectBox -- */
.selectBox {
    position: relative;
}
.selectBox::before {
    display: inline-block;
    position: absolute;
    top: 0;
    bottom: 4px;
    right: 20px;
    margin: auto;
    width: 7px;
    height: 7px;
    border-bottom: 1px solid #1256C3;
    border-left: 1px solid #1256C3;
    content: "";
    z-index: 30;
    transform: rotate(-45deg);
}
.selectBox:after {
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    left: 0;
    margin: auto;
    background: #F6F7F9;
    border-radius: 4px;
    content: "";
    z-index: 20;
}
select {
    cursor: pointer;
    position: relative;
    padding: 0 30px 0 16px;
    width: 100%;
    height: 68px;
    z-index: 30;
}
select.selectFirstColor {
    color: rgba(0, 0, 0, 0.3);
}

/* -- form -- */
#form table {
    width: 100%;
    border-top: 1px solid #CDD9E0;
}
#form table > * > tr > * {
    position: relative;
    border-bottom: 1px solid #CDD9E0;
}
#form table > * > tr > th {
    font-weight: normal;
    padding: 53px 90px 0 0;
    width: 340px;
}
#form table > * > tr.required > th::after {
    text-align: right;
    font-weight: 500;
    font-size: 15px;
    line-height: 1;
    color: #ED4A49;
    position: absolute;
    top: 56px;
    right: 19px;
    content: "*required";
}
#form table > * > tr > td {
    padding: 30px 0 31px;
}
/* - redTxt - */
#form .redTxt {
    position: absolute;
    left: 0;
    bottom: 8px;
}
#form .selectBox .redTxt {
    bottom: -23px;
}
#form .checkbox .redTxt {
    bottom: 11px;
}
/* - errors - */
#form input[type="text"].form-text.errors,
#form input[type="email"].form-text.errors,
#form input[type="tel"].form-text.errors,
#form input[type="number"].form-text.errors,
#form .checkbox.form-text.errors input[type="checkbox"],
#form textarea.form-text.errors,
#form .errors.selectBox:after {
    background: #FFFFFF;
    border: 1px solid #ED4A49;
}
@media screen and ( min-width: 901px ) {
    /* - ptM - */
    #form table > * > tr.ptM > th {
        padding-top: 37px;
    }
    #form table > * > tr.ptM > th::after {
        top: 41px;
    }
    /* - ptS - */
    #form table > * > tr.ptS > th {
        padding-top: 27px;
    }
    #form table > * > tr.ptS > th::after {
        top: 31px;
    }
    #form table > * > tr.ptS > td {
        padding-top: 27px;
    }
}
@media screen and ( max-width: 900px ) {
    #form table {
        border-top: none;
    }
    #form table > * > tr > * {
        display: block;
        border-bottom: none;
    }
    #form table > * > tr > th {
        padding: 10px 70px 0 15px;
        width: 100%;
    }
    #form table > * > tr.required > th::after {
        font-size: 13px;
        top: 15px;
        right: 10px;
    }
    #form table > * > tr > td {
        padding: 15px 8px 30px;
    }
    /* - redTxt - */
    #form .redTxt {
        left: 10px;
        bottom: 10px;
    }
    #form .selectBox .redTxt {
        left: 4px;
        bottom: -20px;
    }
    #form .checkbox .redTxt {
        bottom: 10px;
    }
}

/* -- formBtn -- */
.formBtn {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    margin-top: 41px;
}
.formBtn > * {
    width: 240px;
}
.formBtn button {
    text-align: center;
    font-weight: bold;
    font-size: 18px;
    line-height: 1.5;
    color: #115680;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    padding: 0 15px;
    width: 100%;
    height: 62px;
    border: 1px solid #E2FF00;
    border-radius: 10em;
    background: #E2FF00;
    transition: color .6s, background .6s;
}
@media screen and ( min-width: 901px ) {
    /* hover */
    .formBtn button:hover {
        color: #E2FF00;
        background: #115680;
    }
}
@media screen and ( max-width: 900px ) {
    .formBtn {
        margin-top: 20px;
    }
    .formBtn button {
        font-size: 16px;
        height: 50px;
    }
}