html, body {
    margin: 0;
    min-height: 100vh;
}

header {
    position: relative;
    min-height: 50px;
    margin-bottom: 20px;
    border: 1px solid transparent;
    background-image: linear-gradient(to bottom, #fff 0, #f8f8f8 100%);
    background-repeat: repeat-x;
    border-radius: 4px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
    background-color: #f8f8f8;
    border-color: #e7e7e7;
}

#header_box {
    height: 50px;
    display: flex;
    align-items: end;
    /*width: 83.33333333%;*/
}
#header_logo_block img {
    vertical-align: middle;
}
.page_box {
    margin: auto;
    padding: 0 15px;
}
@media (min-width: 800px) {
    .page_box {
        width: 750px;
    }
}
@media (min-width: 1010px) {
    .page_box {
        width: 970px;
    }
}
@media (min-width: 1200px) {
    .page_box {
        width: 1170px;
    }
}


#main {
    margin-bottom: 50px;
}

.ib {
    display: inline-block;
}

.content_box + .content_box {
    margin-top: 50px;
}
.content_title {
    padding: 0.5em;
    color: #494949;
    background: #def1ff;
    border-left: solid 5px #0070C0;
    font-size: 20px;
}
.content_block {
    padding: 1em;
}
.content_item_block {
    display: flex;
    padding: 0.5em;
}
.content_item_title {
    width: 6em;
}
.content_item {

}
.content_item label + label {
    margin-left: 1em;
}

.period_radio {
    display: none;
}
.period_text_box {
    cursor: pointer;
    padding: 3px 10px;
    border: 1px solid #0070C0;
    color: #0070C0;
}
.period_radio:checked + .period_text_box {
    color: #fff;
    background: #0070C0;
}

#campaign_box {
    display: none;
}
.campaign_item {
    padding: 0.5em;
}
.campaign_content {

}
.system_control_check {
    display: none;
}
.user_control_check {
    display: none;
}
.campaign_item_block {
    display: flex;
    height: 35px;
    cursor: pointer;
    border: 1px solid #0070C0;
}
input[type="checkbox"]:disabled + .campaign_item_block {
    pointer-events: none;
    border-color: #bfbfbf;
    /*color: #bfbfbf;*/
}
.checkbox_icon {
    display: inline-block;
    padding: 5px;
    width: 25px;
    min-width: 25px;
    background: #0070C0;
    position: relative;
}
input[type="checkbox"]:disabled + .campaign_item_block .checkbox_icon {
    background: #bfbfbf;
}
.system_control_check + .campaign_item_block .checkbox_icon:before,
.system_control_check + .campaign_item_block .checkbox_icon:after {
    content: "";
    position: absolute;
    top: 17px;
    width: 24px;
    height: 3px;
    background-color: #fff;
}
.system_control_check + .campaign_item_block .checkbox_icon:before {
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
}
.system_control_check + .campaign_item_block .checkbox_icon:after {
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
}

input[type="checkbox"].system_control_check:checked + .campaign_item_block {
    border-color: #4ea72e;
}
input[type="checkbox"].system_control_check:checked + .campaign_item_block .checkbox_icon {
    background: #4ea72e;
}
input[type="checkbox"].system_control_check:checked + .campaign_item_block .checkbox_icon:before,
input[type="checkbox"].system_control_check:checked + .campaign_item_block .checkbox_icon:after {
    /*background-color: #4ea72e;*/
}
input[type="checkbox"].system_control_check:checked + .campaign_item_block .checkbox_icon:before {
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    width: 10px;
}
input[type="checkbox"].system_control_check:checked + .campaign_item_block .checkbox_icon:after {
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    width: 20px;
    top: 15px;
    left: 10px;
}

.user_control_check + .campaign_item_block .checkbox_icon:before {
    content: "";
    position: absolute;
    top: 7px;
    left: 7px;
    width: 19px;
    height: 19px;
    background-color: #fff;
    border: 1px solid #bfbfbf;
}
/**/
input[type="checkbox"].user_control_check:checked + .campaign_item_block .checkbox_icon:before {
    background-color: #0070C0;
    border: 1px solid #bfbfbf;
}
input[type="checkbox"].user_control_check:checked + .campaign_item_block .checkbox_icon:after {
    content: "";
    position: absolute;
    width: 20px;
    height: 10px;
    border-bottom: 3px solid #fff;
    border-left: 3px solid #fff;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
}

.campaign_text {
    display: inline-block;
    padding: 5px 10px;
    align-self: center;
}
#campaign_attention {
    color: red;
    padding: 0 1em;
}
.attention_indent {
    text-indent: -1em;
    padding-left: 1em;
}

.center {
    text-align: center;
}
.button {
    display: inline-block;
    cursor: pointer;
    padding: 10px 20px;
    text-align: center;
    color: #0070C0;
    border: 1px solid #0070C0;
    background: #fff;
    min-width: 150px;
}
.button:hover {
    background: #0070C0;
    color: #fff;
}
a.button {
    text-decoration: none;
}

.flex_button_block {
    display: flex;
    justify-content: space-around;
}

#display_result_button {

}
.disabled_button {
    pointer-events: none;
    color: #bfbfbf;
    border-color: #bfbfbf;
}

#result_box {
    display: none;
    margin-top: 20px;
    padding-top: 30px;
}
#result_table_box {
    display: flex;
    justify-content: space-around;
}
.result_table {
    border-collapse: collapse;
    margin: auto;
}
.result_table th {
    padding: 5px 10px;
    border: 1px solid;
}
.result_table td {
    width: 150px;
    text-align: right;
    padding: 5px 10px;
    border: 1px solid;
}
#initial_cost_table th, #initial_cost_table td {
    border-color: #ed73a4;
}
#initial_cost_table .fill_cell {
    background: #ed73a4;
    color: #fff;
}
#campaign_cost_table th, #campaign_cost_table td {
    border-color: #4ea72e;
}
#campaign_cost_table .fill_cell {
    background: #4ea72e;
    color: #fff;
}
#monthly_cost_table th, #monthly_cost_table td {
    border-color: #4ea72e;
}
#monthly_cost_table .fill_cell {
    background: #4ea72e;
    color: #fff;
}
#campaign_cost_table {
    margin-bottom: 20px;
}

.unit_text {
    font-size: 80%;
    margin-left: 1em;
}

#result_attention {
    margin-top: 50px;
    padding: 0 1em;
}

#result_button_block {
    display: flex;
    justify-content: space-around;
    margin-top: 50px;
}
.result_button {
    min-width: 150px;
}
@media (max-width: 750px) {
    #main {
        font-size: 14px;
    }

    #result_table_box {
        flex-direction: column;
    }
    #monthly_table_block {
        margin-top: 20px;
    }
    .flex_button_block {
        flex-direction: column;
        align-items: center;
    }

    .button {
        width: 300px;
        margin-top: 30px;
    }
    .result_button {

    }

    #display_result_button_back {
        order: 2;
    }

    #result_button_1 {
        order: 3;
    }
    #result_button_2 {
        order: 2;
    }
    #result_button_3 {
        order: 1;
    }

    .nodisp_sp {
        display: none;
    }
}
@media (max-width: 350px) {
    #main {
        font-size: 12px;
    }
    .button {
        width: 75%;
    }
}