.page {
    text-align: center;
    transition: none;
    margin: 0 40px 60px 40px;
}

.page:not(.first) {
    display: none;
}

/************************************************/

.page_control input {
    display: inline-block;
}

/************************************************/

#giving_form {
    display: block;
}

/************************************************/

select {
    font-size: 20px;
    padding: 10px 10px 10px 10px;
    display: block;
    margin: 0 auto;
}

input[type="text"] {
    font-size: 20px;
    padding: 10px 10px 10px 10px;
}

input {
    display: block;
    margin: 0 auto;
}

.page_control {
    margin-top: 30px;
}

.adjacent>* {
    display: inline-block;
}

.adjacent>*:not(.first) {
    margin-left: 50px;
}

.information {
    margin-top: 15px;
}

address {
	font-weight: bold;
}

/************************************************/

.error_code_container .error_code {
    display: inline-block;
}

/************************************************/

#fund_wrapper {
    display: flex;
    justify-content: space-around;
    flex-wrap: wrap;
    position: relative;
}

.fund_block {
    width: 250px;
    height: 200px;
    padding: 10px;
    border: 1px solid black;
    box-shadow: -5px 5px 20px #888888;
    display: inline-block;
    
    flex-shrink: 0;
    
    cursor: pointer;
}

.fund_block:hover {
    box-shadow: -15px 15px 20px #888888;
}

input:checked+.fund_block {
    border: 1px solid #B97D2D;
    box-shadow: -15px 15px 20px #B97D2D;
    background: #FFFAF4;
}

input:checked+.fund_block:hover {
    box-shadow: -15px 15px 20px #B97D2D;
}

.fund_block:not(.on_carousel) {
    display: none;
}

.fund_header {
    font-size: 20px;
    border-bottom: solid 2px #DEDEDE;
    margin-bottom: 10px;
}

.fund_description {
    font-size: 12px;
    text-overflow: ellipsis;
    text-align: center;
}

.fund_radio {
    display: none;
}

.fund_carousel_control {
    position: absolute;
    font-size: 40px;
    top: 50%;
    transform: translateY(-50%);
    cursor: pointer;
}

.fund_carousel_control:hover {
    font-size: 50px;
}

#fund_carousel_left {
    left: -20px;
}

#fund_carousel_right {
    right: -20px;
}

#fund_block_custom {
    position: relative;
}

#fund_custom_textarea {
    position: absolute;
    bottom: 10px;
    width: 228px;
    height: 140px;
    
    border: none;
    line-height: 22.4px;
    font-size: 12px;
}

input:checked+.fund_block #fund_custom_textarea {
    background: #FFFAF4;
}

/************************************************/

.new_card_panel {

}

#card_element {
    padding: 10px;
    background-color: white;
    border: 1px solid black;
    width: 337px;
    display: inline-block;
}

.new_card_panel #save_card {
    display: inline-block;
    width: 20px;
}

.new_card_panel #save_card_label {
    width: 140px;
    height: 46px;
    padding-top: 11px;
    padding-bottom: 11px;
    display: inline-block;
}

#save_card_container {
    padding-top: 3px;
    vertical-align: top;
    margin-left: -20px;
}

#save_card_container>* {
    padding-top: 13px;
    padding-bottom: 12px;
}

/************************************************/

#saved_card_panel {
    vertical-align: top;
    width: 480px;
    display: inline-block;
    text-align: left;
    margin-bottom: 10px;
}

.card {
    height: 50px;
    margin-bottom: 0;
}

.card:not(:last-child) {
    border-bottom: 1px solid #DDDDDD;
}

.card input {
    margin-bottom: 30px;
    margin-right: 10px;
    vertical-align: middle;
    display: inline-block;
}

.card .card_info {
    display: inline-block;
    text-align: left;
}

.card span {
    color: black;
}

.card_info.left {
    width: 150px;
}

.card_info.right {
    float: right;
    text-align: right;
    width: 100px;
}

.card:last-child {
    height: 20px;
    text-align: left;
}

.card:last-child input {
    margin-bottom: 1px;
}

/************************************************/

#saved_source_panel {
    vertical-align: top;
}

#save_source_container {
    padding-top: 3px;
}

#save_source_container>* {
    padding-top: 13px;
    padding-bottom: 12px;
}

.source {
    height: 50px;
    margin-bottom: 0;
}

.source:not(:last-child) {
    border-bottom: 1px solid #DDDDDD;
}

.source input {
    margin-bottom: 30px;
    margin-right: 10px;
    vertical-align: middle;
    display: inline-block;
}

.source .source_info {
    display: inline-block;
    text-align: left;
}

.source span {
    color: black;
}

.source_info.left {
    width: 150px;
}

.source_info.right {
    float: right;
    text-align: right;
    width: 100px;
}

.source:last-child {
    height: 20px;
    text-align: left;
}

.source:last-child input {
    margin-bottom: 1px;
}

/************************************************/

#amount_page label:not(.error_input) {
    font-size: 20px;
    display: inline-block;
    margin-right: 10px;
}

#amount_page input {
    display: inline-block;
}

#amount_error {
    left: -250px;
}

#fee_notice_wrapper {
    display: block;
}

#fee_notice {
    margin: 0 auto;
    margin-top: 10px;
    padding: 5px 20px;
    color: red;
    display: inline-block;
    
    border: 1px solid black;
    background: #F8F8F8;
}

#fee_round_up, #fee_cancel {
    padding-top: 4px;
    padding-bottom: 4px;
    margin-top: 5px;
}

#fee_cancel {
    margin-left: 20px;
}

/*************************************************/

.ach {
    padding-bottom: 7px;
    padding-top: 3px;
    text-align: left;
    width: 600px;
    margin: 0 auto;
}

.ach:not(:last-child) {
    border-bottom: solid 1px #DEDEDE;
}

.ach.header {
    border-bottom: solid 2px #DEDEDE;
    vertical-align: top;
    padding-bottom: 10px;
    color: #56AED4;
}

.ach.header span {
    vertical-align: top;
}

.ach span {
    display: inline-block;
    vertical-align: top;
}

.ach label {
    margin-bottom: 0;
}

.ach label span {
    color: black;
}

.ach span.ach_radio {
    width: 5%;
    vertical-align: middle;
    padding-bottom: 3px;
}

.ach span.ach_name {
    width: 35%;
}

.ach span.ach_bank {
    width: 41%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ach:not(.header) span.ach_bank {
    padding-right: 20px;
}

.ach span.ach_number {
    width: 13%;
}

/*************************************************/

#recurring_form input, #recurring_form select, #recurring_form label {
    display: inline-block;
    padding: 10px 10px 10px 10px;
}

#recurring_form {
    font-size: 20px;
}

#recurring_count {
    width: 100px;
}

#recurring_form label.error_input.right {
    padding: 5px 0 5px 10px;
}

/*************************************************/

#info_page label {
    text-align: left;
}

#info_page #info_form {
    display: inline-block;
}

#info_form input {
    margin-bottom: 10px;
}

/*************************************************/

#overview_page label {
    display: inline-block;
}


#overview_page table {
    text-align: left;
    width: auto;
    margin: 0 auto;
}

/*************************************************/

.error_input_wrapper {
    position: relative;
    display: inline-block;
}

.error_input {
    position: absolute;
    top: 5px;
    width: 200px;
    height: 38px;
    display: inline-block;
    vertical-align: middle;
    font-size: 13px;
    line-height: 26px;

    background-color: lightgrey;
    color: red;
}

.error_input.left {
    left: calc(100% + 24px);
    padding: 5px 0 5px 5px;
}

.error_input.right {
    right: calc(100% + 28px);
    padding: 5px 0 5px 10px;
    text-align: left;
}

.error_input.left:before {
    content: "";
    position: absolute;
    width: 0; 
    height: 0; 
    border-top: 19px solid transparent;
    border-bottom: 19px solid transparent;
    border-right:19px solid lightgrey; 
    top: 0px;
    left: -19px;
}

.error_input.right:after {
    content: "";
    position: absolute;
    width: 0; 
    height: 0; 
    border-top: 19px solid transparent;
    border-bottom: 19px solid transparent;
    border-left:19px solid lightgrey; 
    top: 0px;
    left: 200px;
}

.error {
    border-color: red;
    color: red;
}

/*************************************************/

.loader {
    font-size: 60px;
    animation: spin 2s linear infinite;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/*************************************************/

.buttonClear.back {
    float: left;
    margin-top: -50px;
}

.buttonClear {
    background: #FFFFFF;
    border-color: #D7D7D7;
    padding: 8px 11px;
    border: 1px solid;
    color: #B97D2D;
    cursor: pointer;
}

.buttonClear:disabled {
    cursor: default;
    background-color: #999999;
    color: #FFFFFF;
}

.row3 a {
    color: #008357;
    background-color: transparent;
    font-weight: bold;
}

/*************************************************/

.progress_tracker {
    position: relative;
    width: 100%;
    height: 50px;
    margin-top: 20px;
    margin-bottom: 40px;
}

.progress_tracker .progress_bar_outer {
    position: absolute;
    width: 76%;
    height: 10px;
    background: #CCCCCC;
    top: 20px;
    left: 12%;
}

.progress_tracker .progress_bar_inner {
    width: 0px;
    height: 10px;
    background: green;
}

.progress_tracker .progress_back {
    position: absolute;
    top: 8px;
    left: 40px;

}

.progress_tracker .progress_label {
    position: absolute;
    top: 14px;
    right: 70px;


}

/*************************************************/

#error {
    margin-top: 20px;
    padding: 10px 0;

    text-align: center;
    font-size: 20px;

    background-color: #DF4957;

    display: none;
}

/*************************************************/

#thank_message {
    margin: 50px 0;
}

#legal_disclaimer {
    font-size: 0.8em;
    font-weight: bold;
    text-align: center;
}

/*************************************************/

input.switch {
    visibility: hidden;
}

label.switch {
    background: #FFFFFF;
    border-color: #D7D7D7;
    border: 1px solid;
    color: #B97D2D;
    font-weight: bold;
    padding: 10px 30px 10px 30px;
    cursor: pointer;
    text-align: center;
}

input.switch:checked + label {
    background: #B97D2D;
    color: white;
    border-color: #B97D2D;
}

label.switch:hover {
    background-color: #D99D4D;
    color: white;
}

input.switch:checked:hover + label, input.switch:checked:focus + label, input.switch:checked:active + label {
    background-color: #D99D4D;
}

input.switch:disabled + label, input.switch:disabled:checked + label {
    color: #FFFFFF;
    background-color: #D7D7D7;
}