.mh-cost-calculator {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    padding: 1.5rem;
    border: 1px solid #1e3a5a;
    border-radius: 12px;
    background: #06162a;
    color: #f4f7fb;
}

.mh-cost-calculator__fields {
    display: grid;
    gap: .9rem;
}

.mh-cost-calculator label {
    display: grid;
    gap: .35rem;
    font-weight: 600;
    color: #ffffff;
}

/* Astra and child-theme form rules can otherwise override the browser [hidden] rule. */
.mh-cost-calculator [data-custom-ip][hidden] {
    display: none !important;
}

.mh-cost-calculator input,
.mh-cost-calculator select {
    width: 100%;
    padding: .6rem;
    border: 1px solid #aab3c2;
    border-radius: 6px;
    font: inherit;
    background: #ffffff;
    color: #17233a;
}

/* Helper/status text on the dark calculator background */
.mh-cost-calculator__recommendation,
.mh-cost-calculator__ip-status,
.mh-cost-calculator__note {
    margin: 0;
    color: #c3d0df;
    font-size: .92rem;
}

/* Standard Account Estimate panel */
.mh-cost-calculator__result {
    padding: 1.25rem;
    border-radius: 8px;
    background: #0d1d32;
    border: 1px solid #223b59;
    color: #f4f7fb;
}

.mh-cost-calculator__result h3 {
    margin: .2rem 0 .75rem;
    color: #ffffff;
}

.mh-cost-calculator__account {
    margin: 0;
    color: #aebfd2;
    font-size: .85rem;
    font-weight: 700;
    text-transform: uppercase;
}

.mh-cost-calculator__total {
    display: grid;
    gap: .25rem;
    margin: 0 0 1rem;
    font-size: 1.1rem;
    color: #dce7f3;
}

.mh-cost-calculator__total strong {
    font-size: 1.55rem;
    color: #ffffff;
}

.mh-cost-calculator__breakdown {
    margin: 0 0 1rem;
}

.mh-cost-calculator__breakdown div {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: .45rem 0;
    border-top: 1px solid #29415d;
    color: #dce7f3;
}

.mh-cost-calculator__breakdown div:last-child {
    font-weight: 700;
    color: #ffffff;
}

.mh-cost-calculator__breakdown dd {
    margin: 0;
    text-align: right;
}
