.elementor-16001 .elementor-element.elementor-element-550335e{--display:flex;}.elementor-16001 .elementor-element.elementor-element-550335e.e-con{--flex-grow:0;--flex-shrink:0;}.elementor-16001 .elementor-element.elementor-element-71d2c3e{margin:060px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;text-align:start;}.elementor-16001 .elementor-element.elementor-element-71d2c3e.elementor-element{--align-self:center;}.elementor-16001 .elementor-element.elementor-element-71d2c3e .elementor-heading-title{color:var( --e-global-color-primary );}.elementor-16001 .elementor-element.elementor-element-a8e35b9{width:var( --container-widget-width, 60% );max-width:60%;margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;--container-widget-width:60%;--container-widget-flex-grow:0;text-align:start;}.elementor-16001 .elementor-element.elementor-element-a8e35b9.elementor-element{--align-self:center;}.elementor-16001 .elementor-element.elementor-element-2998be8{margin:030px 0px calc(var(--kit-widget-spacing, 0px) + 030px) 0px;padding:0px 0px 0px 0px;text-align:start;font-family:var( --e-global-typography-primary-font-family );font-size:var( --e-global-typography-primary-font-size );font-weight:var( --e-global-typography-primary-font-weight );text-transform:var( --e-global-typography-primary-text-transform );font-style:var( --e-global-typography-primary-font-style );text-decoration:var( --e-global-typography-primary-text-decoration );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );word-spacing:var( --e-global-typography-primary-word-spacing );}.elementor-16001 .elementor-element.elementor-element-2998be8.elementor-element{--align-self:center;}.elementor-16001 .elementor-element.elementor-element-43e6674{width:100%;max-width:100%;}.elementor-16001 .elementor-element.elementor-element-43e6674.elementor-element{--align-self:center;}@media(min-width:768px){.elementor-16001 .elementor-element.elementor-element-550335e{--width:93.017%;}}@media(max-width:1366px){.elementor-16001 .elementor-element.elementor-element-2998be8{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );word-spacing:var( --e-global-typography-primary-word-spacing );}}@media(max-width:1200px){.elementor-16001 .elementor-element.elementor-element-a8e35b9{--container-widget-width:80%;--container-widget-flex-grow:0;width:var( --container-widget-width, 80% );max-width:80%;}}@media(max-width:1024px){.elementor-16001 .elementor-element.elementor-element-2998be8{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );word-spacing:var( --e-global-typography-primary-word-spacing );}}@media(max-width:767px){.elementor-16001 .elementor-element.elementor-element-a8e35b9{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 0px;--container-widget-width:100%;--container-widget-flex-grow:0;width:var( --container-widget-width, 100% );max-width:100%;}.elementor-16001 .elementor-element.elementor-element-2998be8{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );word-spacing:var( --e-global-typography-primary-word-spacing );}}/* Start custom CSS */.cascade-calculator-wrapper *,
.cascade-calculator-wrapper *::before,
.cascade-calculator-wrapper *::after {
    box-sizing: border-box;
}

/* General Styles */
.cascade-calculator-wrapper {
    padding-bottom: 50px; /* Prevent footer overlap */
    font-family: sans-serif;
}

.cascade-calculator-wrapper h1,
.cascade-calculator-wrapper h2,
.cascade-calculator-wrapper h3,
.cascade-calculator-wrapper h4,
.cascade-calculator-wrapper h5,
.cascade-calculator-wrapper legend {
    color: #333;
}

.cascade-calculator-wrapper .h5, .cascade-calculator-wrapper h5 {
    font-size: 1.25rem;
}

.cascade-calculator-wrapper legend {
    font-size: 1.5rem;
}

/* Input Column Specifics */
.cascade-calculator-wrapper .input-column fieldset {
    background-color: #fdfdfd;
}

.cascade-calculator-wrapper .bank-input-group { /* Common style for both identical and individual */
    border: 1px solid #dee2e6;
    padding: 15px;
    margin-bottom: 15px;
    border-radius: 5px;
    background-color: #f8f9fa;
    display: flex; /* Use flex for alignment within group */
    flex-wrap: wrap;
}

.cascade-calculator-wrapper .preset-select {
    font-size: 0.8em; /* Make preset dropdowns smaller */
}

/* Utility class for hiding elements */
.cascade-calculator-wrapper .hidden {
    display: none !important; /* Use important to override potential conflicts */
}

/* Styling for the custom settings panel */
.cascade-calculator-wrapper .custom-settings-panel {
    border: 1px dashed #ccc;
    padding: 15px;
    margin-top: 10px;
    border-radius: 4px;
    background-color: #f0f2f5; /* Slightly different background */
    /* Transition for smooth expand/collapse */
    max-height: 0; /* Initially collapsed */
    overflow: hidden;
    transition: max-height 0.4s ease-out, padding-top 0.4s ease-out, padding-bottom 0.4s ease-out;
    padding-top: 0; /* No padding when hidden */
    padding-bottom: 0;
    width: 100%; /* Ensure it takes full width within its container */
}

.cascade-calculator-wrapper .custom-settings-panel.visible {
    max-height: 500px; /* Adjust max-height to fit content */
    padding-top: 15px; /* Add padding back when visible */
    padding-bottom: 15px;
    transition: max-height 0.4s ease-in, padding-top 0.4s ease-in, padding-bottom 0.4s ease-in;
}

/* Add some margin between individual bank groups */
.cascade-calculator-wrapper .individual-bank-group {
    margin-bottom: 1rem;
    /* border already applied by .bank-input-group */
    padding-top: 1rem;
    padding-bottom: 0.5rem;
}

.cascade-calculator-wrapper .bank-input-group h5 {
    padding-left: 0px; /* Align heading within flex container */
    margin-bottom: 1rem; /* Add space below heading */
}

/* Output & Animation Column Specifics */
.cascade-calculator-wrapper .results-box {
    min-height: 150px; /* Ensure space for results */
}

.cascade-calculator-wrapper .results-value {
    font-weight: bold;
    color: #007bff;
}

.cascade-calculator-wrapper .status-message {
    font-style: italic;
    min-height: 1.2em; /* Prevent layout shifts */
}

.cascade-calculator-wrapper #animationCanvas {
    background-color: #e9ecef; /* Light background for canvas */
    width: 100%; /* Make canvas fill its container */
    height: 100%; /* Make canvas fill its container */
    display: block; /* Prevent default inline spacing */
}

.cascade-calculator-wrapper .canvas-container {
    width: 100%;
    height: 50vh; /* Set height to 50% of viewport height */
    position: relative; /* Add position relative for canvas positioning */
    overflow: hidden; /* Hide overflow to prevent scrollbars */
    margin: 0 auto;
}
.cascade-calculator-wrapper .animation-controls label {
    vertical-align: middle;
}
.cascade-calculator-wrapper .animation-controls .custom-range {
     vertical-align: middle;
}

/* Animation info styling */
.cascade-calculator-wrapper .animation-info {
    background-color: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: 5px;
    padding: 10px;
}

.cascade-calculator-wrapper .animation-info p {
    margin-bottom: 0;
}

/* Ensure labels in form groups have some bottom margin */
.cascade-calculator-wrapper .form-group label {
    margin-bottom: .3rem;
    display: inline-block;
}

.cascade-calculator-wrapper #pausePlayButton {
    margin-left: 10px;
}


/* Class to visually disable controls */
.cascade-calculator-wrapper .controls-disabled {
    opacity: 0.5;
    pointer-events: none;
}

.cascade-calculator-wrapper .container {
    width: 100%;
    margin-right: auto;
    margin-left: auto;
    padding-right: 15px;
    padding-left: 15px;
}

@media (min-width: 576px) {
    .cascade-calculator-wrapper .container {
        max-width: 540px;
    }
}

@media (min-width: 768px) {
    .cascade-calculator-wrapper .container {
        max-width: 720px;
    }
}

@media (min-width: 992px) {
    .cascade-calculator-wrapper .container {
        max-width: 960px;
    }
}

@media (min-width: 1200px) {
    .cascade-calculator-wrapper .container {
        max-width: 1140px;
    }
}

.cascade-calculator-wrapper .row {
    display: flex;
    flex-wrap: wrap;
    margin-right: -15px;
    margin-left: -15px;
}

.cascade-calculator-wrapper .col-12, .cascade-calculator-wrapper .col-md-4, .cascade-calculator-wrapper .col-md-6 {
    position: relative;
    width: 100%;
    padding-right: 15px;
    padding-left: 15px;
    box-sizing: border-box;
}

.cascade-calculator-wrapper .col-12 {
    flex: 0 0 100%;
    max-width: 100%;
}


@media (min-width: 768px) {
    .cascade-calculator-wrapper .col-md-4 {
        flex: 0 0 33.333333%;
        max-width: 33.333333%;
    }
    .cascade-calculator-wrapper .col-md-6 {
        flex: 0 0 50%;
        max-width: 50%;
    }
}

/* Spacing & Margins */
.cascade-calculator-wrapper .mt-1 { margin-top: .25rem !important; }
.cascade-calculator-wrapper .mt-2 { margin-top: .5rem !important; }
.cascade-calculator-wrapper .mt-3 { margin-top: 1rem !important; }
.cascade-calculator-wrapper .mt-4 { margin-top: 1.5rem !important; }
.cascade-calculator-wrapper .mb-2 { margin-bottom: .5rem !important; }
.cascade-calculator-wrapper .mb-3 { margin-bottom: 1rem !important; }
.cascade-calculator-wrapper .mb-4 { margin-bottom: 1.5rem !important; }
.cascade-calculator-wrapper .ml-1 { margin-left: .25rem !important; }
.cascade-calculator-wrapper .ml-2 { margin-left: .5rem !important; }
.cascade-calculator-wrapper .ml-3 { margin-left: 1rem !important; }
.cascade-calculator-wrapper .p-3 { padding: 1rem !important; }
.cascade-calculator-wrapper .px-2 {
    padding-right: .5rem !important;
    padding-left: .5rem !important;
}

/* Forms & Inputs */
.cascade-calculator-wrapper .form-group {
    margin-bottom: 1rem;
}

.cascade-calculator-wrapper .form-control {
    display: block;
    width: 100%;
    height: calc(1.5em + .75rem + 2px);
    padding: .375rem .75rem;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    color: #495057;
    background-color: #fff;
    background-clip: padding-box;
    border: 1px solid #ced4da;
    border-radius: .25rem;
    transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out;
}

.cascade-calculator-wrapper .form-control-sm {
    height: calc(1.5em + .5rem + 2px);
    padding: .25rem .5rem;
    font-size: .875rem;
    line-height: 1.5;
    border-radius: .2rem;
}

.cascade-calculator-wrapper .form-check {
    position: relative;
    display: block;
    padding-left: 1.25rem;
}

.cascade-calculator-wrapper .form-check-input {
    position: absolute;
    margin-top: .3rem;
    margin-left: -1.25rem;
}

.cascade-calculator-wrapper .form-check-label {
    margin-bottom: 0;
}

.cascade-calculator-wrapper .form-row {
    display: flex;
    flex-wrap: wrap;
    margin-right: -5px;
    margin-left: -5px;
}

.cascade-calculator-wrapper .form-row > .col,
.cascade-calculator-wrapper .form-row > [class*="col-"] {
    padding-right: 5px;
    padding-left: 5px;
}

.cascade-calculator-wrapper .custom-range {
    width: 100%;
    height: 1.4rem;
    padding: 0;
    background-color: transparent;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

.cascade-calculator-wrapper .custom-range::-webkit-slider-runnable-track {
    width: 100%;
    height: .5rem;
    color: transparent;
    cursor: pointer;
    background-color: #dee2e6;
    border-color: transparent;
    border-radius: 1rem;
}

.cascade-calculator-wrapper .custom-range::-moz-range-track {
    width: 100%;
    height: .5rem;
    color: transparent;
    cursor: pointer;
    background-color: #dee2e6;
    border-color: transparent;
    border-radius: 1rem;
}

.cascade-calculator-wrapper .custom-range::-webkit-slider-thumb {
    width: 1rem;
    height: 1rem;
    margin-top: -.25rem;
    background-color: #007bff;
    border: 1px solid #007bff;
    border-radius: 1rem;
    -webkit-appearance: none;
    appearance: none;
}

.cascade-calculator-wrapper .custom-range::-moz-range-thumb {
    width: 1rem;
    height: 1rem;
    margin-top: -.25rem;
    background-color: #007bff;
    border: 1px solid #007bff;
    border-radius: 1rem;
    -moz-appearance: none;
    appearance: none;
}

/* Components & Utilities */
.cascade-calculator-wrapper .btn {
    display: inline-block;
    font-weight: 400;
    color: #212529;
    text-align: center;
    vertical-align: middle;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    background-color: transparent;
    border: 1px solid transparent;
    padding: .375rem .75rem;
    font-size: 1rem;
    line-height: 1.5;
    border-radius: .25rem;
    transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;
}

.cascade-calculator-wrapper .btn-sm {
    padding: .25rem .5rem;
    font-size: .875rem;
    line-height: 1.5;
    border-radius: .2rem;
}

.cascade-calculator-wrapper .btn-success {
    color: #fff;
    background-color: #28a745;
    border-color: #28a745;
}

.cascade-calculator-wrapper .btn-outline-secondary {
    color: #6c757d;
    border-color: #6c757d;
}

.cascade-calculator-wrapper .btn-outline-secondary:hover {
    color: #fff;
    background-color: #6c757d;
    border-color: #6c757d;
}

.cascade-calculator-wrapper .btn-info {
    color: #fff;
    background-color: #17a2b8;
    border-color: #17a2b8;
}

.cascade-calculator-wrapper .btn-warning {
    color: #212529;
    background-color: #ffc107;
    border-color: #ffc107;
}

.cascade-calculator-wrapper .border {
    border: 1px solid #dee2e6 !important;
}

.cascade-calculator-wrapper .rounded {
    border-radius: .25rem !important;
}

.cascade-calculator-wrapper .w-auto {
    width: auto !important;
}

.cascade-calculator-wrapper .h-100 {
    height: 100% !important;
}

.cascade-calculator-wrapper .align-middle {
    vertical-align: middle !important;
}

.cascade-calculator-wrapper .bg-light {
    background-color: #f8f9fa !important;
}

/* Typography */
.cascade-calculator-wrapper .lead {
    font-size: 1.25rem;
    font-weight: 300;
}

.cascade-calculator-wrapper .text-muted {
    color: #6c757d !important;
}

.cascade-calculator-wrapper .text-center {
    text-align: center !important;
}

.cascade-calculator-wrapper .text-info {
    color: #17a2b8 !important;
}

.cascade-calculator-wrapper hr {
    margin-top: 1rem;
    margin-bottom: 1rem;
    border: 0;
    border-top: 1px solid rgba(0,0,0,.1);
}/* End custom CSS */