html {
    -webkit-font-smoothing: subpixel-antialiased;
    font-family: "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", Meiryo, "メイリオ", "MS PGothic", Helvetica, sans-serif;
    font-size: 14px;
    line-height: 1.5;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    cursor: default;
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
    background-color: #fff;
    height: 100%;
}

body {
    background-color: #f9f9f9;
    color: #222222;
}

#header {
    background-color: #fff;
    border-bottom: 1px solid #ececec;
    position: relative;
    z-index: 2;
    padding: 7px 4%;
    height: 35px;
}

#main {
    padding-top: 40px;
    padding-bottom: 60px;
    margin: auto;
    max-width: 900px;

    box-sizing: border-box;
    min-height: 100vh;
}

#footer {
    background-color: #fff;
}

#footer_inner {
    font-size: .95em;
    padding: 7px 9px;
}

.form_header {
    margin-left: 4%;
    margin-right: 4%;
    margin-bottom: 30px;
    color:#fff;
    /* background-color:#1D50A2; */
    background-color:#4f86c5;
    text-align:center;
    font-size:1.6em;
    font-weight:bold;
    padding: 9px;
}

.form_header2 {
    margin-left: 4%;
    margin-right: 4%;
    margin-bottom: 15px;
    font-size:1.25em;
    font-weight:bold;
}

.form_table {
    margin-left: 4%;
    margin-right: 4%;
    padding: 15px;
    background-color: #fff;
    border-top: 1px solid #cccccc;
    border-bottom: 1px dolid #cccccc;
}

.form_group+* {
    margin-top: 40px;
}

.form_group .group_label {
    background-color: #bfbfbf;
    color: #fff;
    font-size: 0.95em;
    font-weight: bold;
    padding: 7px;
    margin-bottom: 30px;
}

.form_item {
    position: relative;
}

.form_item:not(:last-child) {
    margin-bottom: 2.5em;
}

/**/
.form_item .row .col_zip {
    width: calc(30% - 20px);
    float: left;
}

.form_item .row .col_zip:nth-of-type(1) {
    padding-right: 5px;
}

.form_item .row .col_zip:nth-of-type(2) {
    width: 20px !important;
    text-align: center;
    padding-top: 15px;
}

.form_item .row .col_zip:nth-of-type(3) {
    padding-left: 5px;
}


.form_item .row .col_pn {
    width: 14%;
    float: left;
}

.form_item .row .col_pn:nth-of-type(1) {
    width: 8% !important;
    text-align: right;
    padding-top: 16px;
    padding-right: 5px;
    white-space: nowrap;
}

.form_item .row .col_pn:nth-of-type(3) {
    width: 18px !important;
    text-align: center;
    padding-top: 16px;
}

.form_item .row .col_pn:nth-of-type(5) {
    width: 18px !important;
    text-align: center;
    padding-top: 16px;
}

.form_item .row .col_pn:nth-of-type(7) {
    width: 18px !important;
    text-align: center;
    padding-top: 16px;
}

.form_item .row .col_pn:nth-of-type(9) {
    text-align: left;
    padding-top: 16px;
    padding-left: 5px;
    white-space: nowrap;
}
/**/

.form_item .row:after {
    content: ".";
    display: block;
    height: 0;
    font-size: 0;
    clear: both;
    visibility: hidden;
}

.form_item .row .col:nth-of-type(even) {
    padding-top: 15px;
}

.form_item .item_label {
    font-weight: bold;
    margin-bottom: 10px;
    display: block;
    font-size: .95em;
}

.form_item .required {
    background-color: #e17b33;
    padding: 2px 6px;
    font-size: .65em;
    color: #fff;
    margin-left: 6px;
    vertical-align: 2px;
    display: inline-block;
    min-width: 34px;
    text-align: center;
    font-weight: normal;
}

.form_item input,select,textarea {
    border: 1px solid #cccccc;
    border-radius: 4px;
    padding: 15px;
    width: 100%;
    font-size: .95em;
    background-color: #fbfbfb;
}

.form_item .select_wrapper {
    position: relative;
    display: inline-block;
    vertical-align: top;
}

.form_item .select_wrapper.select_col3 {
    width: calc(33.3333333333% - 4px);
}

.form_item .select_wrapper.select_col1 {
    width: calc(100% - 4px);
}

.form_item .select_wrapper select {
    padding-right: 18px;
    cursor: pointer;
    position: relative;
    background-color: #fbfbfb;
    padding: 12px 18px 13px 13px;
    color: #222222;
    background-image: url("data:image/svg+xml;utf8,<svg fill='black' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/><path d='M0 0h24v24H0z' fill='none'/></svg>");
    background-repeat: no-repeat;
    background-position-x: 100%;
    background-position-y: 50%;
}

.form_item .radio_wrapper {
    display: flex;
}

.form_item .radio_wrapper .radio_inner {
    position: relative;
    border: 1px solid #cccccc;
    background-color: #fbfbfb;
    display: flex;
    align-items: center;
    justify-content: center;
}

.form_item .radio_wrapper .radio_inner:nth-of-type(1) {
    border-top-left-radius: 4px;
    border-bottom-left-radius: 4px;
}

.form_item .radio_wrapper .radio_inner:last-child {
    border-top-right-radius: 4px;
    border-bottom-right-radius: 4px;
}

.form_item .radio_wrapper .radio_inner:not(:last-child) {
    border-right: 0;
}

.form_item .radio_wrapper.radio_col2 .radio_inner {
    width: 50%;
    align-items: normal !important;
}

.form_item .radio_wrapper.radio_col3 .radio_inner {
    width: 33.3333333333%;
    align-items: normal !important;
}

.form_item .radio_wrapper.radio_col4 .radio_inner {
    width: 25%;
    align-items: normal !important;
}

.form_item .radio_wrapper .radio_inner .radio_input {
    opacity: 0;
    position: absolute;
}

.form_item .radio_wrapper .radio_inner .radio_input+label {
    padding-left: 20px;
    position: relative;
    cursor: pointer;
    font-size: .95em;
    padding: 14px 9px;
    text-align: center;
    font-weight: bold;
    display:block;
    display:flex;
    align-items: center;
    justify-content: center;
    width: 100%;
}

.form_item .radio_wrapper .radio_inner:nth-of-type(1) .radio_input+label {
    border-top-left-radius: 3px;
    border-bottom-left-radius: 3px;
}

.form_item .radio_wrapper .radio_inner:last-child .radio_input+label {
    border-top-right-radius: 3px;
    border-bottom-right-radius: 3px;
}

.form_item .radio_wrapper .radio_inner .radio_input:checked+label {
    /* background-color: #005bac; */
    background-color: #337ab7;
    color: #fff;
}

/*チェックボックス用に追加*/
.form_item .checkbox_wrapper {
    display: flex;
}

.form_item .checkbox_wrapper .checkbox_inner {
    position: relative;
    border: 1px solid #cccccc;
    background-color: #fbfbfb;
    display: flex;
    align-items: center;
    justify-content: center;
}

.form_item .checkbox_wrapper .checkbox_inner:nth-of-type(1) {
    border-top-left-radius: 4px;
    border-bottom-left-radius: 4px;
}

.form_item .checkbox_wrapper .checkbox_inner:last-child {
    border-top-right-radius: 4px;
    border-bottom-right-radius: 4px;
}

.form_item .checkbox_wrapper .checkbox_inner:not(:last-child) {
    border-right: 0;
}

.form_item .checkbox_wrapper.checkbox_col2 .checkbox_inner {
    width: 50%;
    align-items: normal !important;
}

.form_item .checkbox_wrapper.checkbox_col3 .checkbox_inner {
    width: 33.3333333333%;
    align-items: normal !important;
}

.form_item .checkbox_wrapper.checkbox_col4 .checkbox_inner {
    width: 25%;
    align-items: normal !important;
}

.form_item .checkbox_wrapper.checkbox_col5 .checkbox_inner {
    width: 20%;
    align-items: normal !important;
}

.form_item .checkbox_wrapper .checkbox_inner .checkbox_input {
    opacity: 0;
    position: absolute;
}

.form_item .checkbox_wrapper .checkbox_inner .checkbox_input+label {
    padding-left: 20px;
    position: relative;
    cursor: pointer;
    font-size: .95em;
    padding: 14px 9px;
    text-align: center;
    font-weight: bold;
    display:block;
    display:flex;
    align-items: center;
    justify-content: center;
    width: 100%;
}

.form_item .checkbox_wrapper .checkbox_inner:nth-of-type(1) .checkbox_input+label {
    border-top-left-radius: 3px;
    border-bottom-left-radius: 3px;
}

.form_item .checkbox_wrapper .checkbox_inner:last-child .checkbox_input+label {
    border-top-right-radius: 3px;
    border-bottom-right-radius: 3px;
}

.form_item .checkbox_wrapper .checkbox_inner .checkbox_input:checked+label {
    /* background-color: #005bac; */
    background-color: #337ab7;
    color: #fff;
}
/*ここまで*/

.form_button {
    text-align: center;
    padding: 0 4%;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    margin-top: 30px;
}

.button {
    margin-left: auto;
    margin-right: auto;
    display: inline-block;
    text-align: center;
    padding: 10px;
    font-weight: normal;
    border-radius: 4px;
    font-size: .875rem;
    color: #fff;
    box-sizing: border-box;
    cursor: pointer;
    min-width: 100px;
    text-decoration: none;
    line-height: 1.7;
}

.button.large_button {
    font-size: 1.3em;
    padding: 10px 10px;
}

.form_button>.button {
    margin-left: 0;
    margin-right: 0;
}

.button.blue_button {
    background-color: #337ab7;
    border: 1px solid #337ab7;
}

.button.white_button {
    background-color: #EEEEEE;
    border: 1px solid #EEEEEE;
    color: #000 !important;
}

.error_text {
    color: #a94442;
    margin-top: 5px;
    padding-left: 5px;
    font-size: .85em;
    position: relative;
}

.form_item input.error {
    border: 1px solid #a94442;
    background-color: #ebcccc;
}

.form_item textarea.error {
    border: 1px solid #a94442;
    background-color: #ebcccc;
}

.form_item select.error {
    border: 1px solid #a94442;
    background-color: #ebcccc;
}

.form_item .radio_wrapper .radio_inner.error {
    border: 1px solid #a94442;
    background-color: #ebcccc;
}

/*チェックボックス用に追加*/
.form_item .checkbox_wrapper .checkbox_inner label.error {
    border: 1px solid #a94442;
    background-color: #ebcccc;
}

/*枠全体をエラーに*/
.table_error {
    border: 1px solid #a94442 !important;
    background-color: #ebcccc;
}

.form_item .select_wrapper select.error {
    border-color: #a94442;
    background-color: #ebcccc;
}

.alert-danger {
    color: #a94442;
    margin-top: 5px;
    margin-left: 4%;
    margin-right: 4%;
    margin-bottom: 15px;
    font-size: 1.25em;
    position: relative;
    background-color: #ebcccc;
}

@media (min-width: 768px) {
    html {
        font-size: 15px;
    }

    #main {
        padding-top: 60px;
    }

    .form_table {
        padding: 30px;
    }

    .form_item .row .col {
        width: 50%;
        float: left;
    }

    .form_item .row .col:nth-of-type(odd) {
        padding-right: 5px;
    }

    .form_item .row .col:nth-of-type(even) {
        padding-top: 0;
        padding-left: 5px;
    }

    .form_item input {
        padding: 17px 15px;
    }

    .form_item .select_wrapper select {
        padding: 14px 18px 15px 13px;
    }

    .form_item .radio_wrapper .radio_inner .radio_input+label {
        padding: 16px 9px;
    }

    /*チェックボックス用に追加*/
    .form_item .checkbox_wrapper .checkbox_inner .checkbox_input+label {
        padding: 16px 9px;
    }

    .form_button {
        padding: 0 30px;
        margin-top: 50px;
    }

    .button {
        padding: 10px 20px;
        font-size: 1rem;
    }
    .button.large_button {
        font-size: 1.5em;
        padding: 14px 40px;
    }
    .form_button>.large_button {
        min-width: 400px;
    }
}

@media (min-width: 481px) {
    .form_table {
        border: 1px solid #cccccc;
        padding: 25px;
        border-radius: 4px;
    }
}
@media (max-width: 767px) {
    .form_button>.large_button {
        width: 100%;
    }
}

@media screen and (max-width: 480px) {
    #header {
        padding: 7px 10px;
    }

    #main {
        padding-top: 0;
    }

    .form_header {
        margin-left: 0;
        margin-right: 0;
        font-size: 1.5em;
        padding: 7px;
    }

    .form_header2 {
        margin-left: 10px;
        margin-right: 10px;
        font-size: 1.15em;
    }

    .form_table {
        margin-left: 0;
        margin-right: 0;
    }

    .form_button {
        margin-left: 10px;
        margin-right: 10px;
    }
}
@media screen and (min-width: 768px) {
    #header {
        padding: 14px 4%;
        height: 52px;
    }
}
@media screen and (min-width: 1500px) {
    #header {
        padding: 14px 60px;
    }
}
