/* [bolig_kalkulator] — lånekalkulator */
.bolig-kalk {
    --ink: #191814;
    --ink-soft: #28261F;
    --muted: #736F66;
    --faint: #8A8275;
    --line: #EAE5D9;
    --sand: #EDE7D6;
    --sand-deep: #DDD4BC;
    --cream: #FAF7EF;
    --ease: cubic-bezier(.22, .8, .24, 1);
    box-sizing: border-box;
    width: 100%;
    padding: 30px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: #fff;
    color: var(--ink);
    font-family: "Schibsted Grotesk", sans-serif;
    letter-spacing: .5px;
    box-shadow: 0 1px 2px rgba(25, 24, 20, .03), 0 18px 40px -30px rgba(25, 24, 20, .35);
}

.bolig-kalk *,
.bolig-kalk *::before,
.bolig-kalk *::after {
    box-sizing: border-box;
}

/* Header */
.bolig-kalk__title {
    margin: 0 0 20px;
    font-family: "Fraunces", Georgia, serif;
    font-size: 25px;
    font-weight: 500;
    line-height: 1.22;
    letter-spacing: -.02em;
    color: var(--ink);
}

/* Result panel — echoes the dark CTA buttons */
.bolig-kalk__result {
    padding: 20px 22px 18px;
    border-radius: 14px;
    background: linear-gradient(158deg, var(--ink-soft), var(--ink) 62%);
    color: var(--cream);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .07);
}

.bolig-kalk__result-label {
    display: block;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: rgba(250, 247, 239, .58);
}

.bolig-kalk__amount-row {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin: 8px 0 0;
}

.bolig-kalk__amount {
    font-family: "Fraunces", Georgia, serif;
    font-size: 42px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: -.03em;
    font-variant-numeric: tabular-nums;
    color: #fff;
}

.bolig-kalk__unit {
    font-size: 15px;
    font-weight: 500;
    color: rgba(250, 247, 239, .72);
}

.bolig-kalk__unit small {
    font-size: 15px;
    color: rgba(250, 247, 239, .45);
}

.bolig-kalk__result-note {
    display: block;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid rgba(250, 247, 239, .14);
    font-size: 13px;
    line-height: 1.4;
    color: rgba(250, 247, 239, .66);
    font-variant-numeric: tabular-nums;
}

/* Fields */
.bolig-kalk__fields {
    margin: 24px 0 0;
}

.bolig-kalk__field + .bolig-kalk__field {
    margin-top: 20px;
}

.bolig-kalk__label {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 9px;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.2;
    color: var(--ink);
    cursor: pointer;
}

.bolig-kalk__label-text {
    flex: 1;
}

.bolig-kalk__hint {
    padding: 3px 9px;
    border-radius: 999px;
    background: var(--sand);
    font-size: 11.5px;
    font-weight: 500;
    color: #6b6149;
    font-variant-numeric: tabular-nums;
}

/* beat Hello Elementor's input reset */
.bolig-kalk input[type="text"].bolig-kalk__value {
    width: 132px;
    flex: 0 0 auto;
    padding: 8px 12px;
    border: 1px solid transparent;
    border-radius: 9px;
    background: var(--cream);
    font-family: inherit;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.2;
    text-align: right;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
    transition: border-color .2s ease, background-color .2s ease;
}

.bolig-kalk input[type="text"].bolig-kalk__value:hover {
    border-color: var(--line);
}

.bolig-kalk input[type="text"].bolig-kalk__value:focus {
    border-color: var(--ink);
    background: #fff;
    outline: none;
}

.bolig-kalk input[type="text"].bolig-kalk__value:focus-visible {
    box-shadow: none;
    outline: none;
}

/* Sliders */
.bolig-kalk__range {
    --fill: 50%;
    display: block;
    width: 100%;
    height: 20px;
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
    -webkit-appearance: none;
    appearance: none;
    cursor: pointer;
}

.bolig-kalk__range:focus {
    outline: none;
}

.bolig-kalk__range:focus-visible {
    box-shadow: none;
    outline: 2px solid var(--ink);
    outline-offset: 4px;
    border-radius: 999px;
}

.bolig-kalk__range::-webkit-slider-runnable-track {
    height: 5px;
    border-radius: 999px;
    background: linear-gradient(to right, var(--ink) var(--fill), var(--sand) var(--fill));
}

.bolig-kalk__range::-moz-range-track {
    height: 5px;
    border-radius: 999px;
    background: linear-gradient(to right, var(--ink) var(--fill), var(--sand) var(--fill));
}

.bolig-kalk__range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 20px;
    height: 20px;
    margin-top: -7.5px;
    border: 5px solid var(--ink);
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 2px 8px rgba(25, 24, 20, .25);
    transition: transform .15s var(--ease), border-width .15s var(--ease);
}

.bolig-kalk__range::-moz-range-thumb {
    width: 20px;
    height: 20px;
    border: 5px solid var(--ink);
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 2px 8px rgba(25, 24, 20, .25);
    transition: transform .15s var(--ease);
}

.bolig-kalk__range:hover::-webkit-slider-thumb,
.bolig-kalk__range:active::-webkit-slider-thumb {
    transform: scale(1.12);
}

.bolig-kalk__range:hover::-moz-range-thumb,
.bolig-kalk__range:active::-moz-range-thumb {
    transform: scale(1.12);
}

/* Renter over hele perioden */
.bolig-kalk__interest {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 24px 0 0;
    padding-top: 18px;
    border-top: 1px solid var(--line);
    font-size: 14px;
    color: var(--muted);
}

.bolig-kalk__interest strong {
    font-weight: 600;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}

.bolig-kalk__disclaimer {
    margin: 14px 0 0;
    font-size: 11.5px;
    line-height: 1.6;
    color: var(--faint);
    letter-spacing: .3px;
}

.bolig-kalk__contact {
    display: inline-block;
    margin-top: 4px;
    color: var(--ink);
    font-weight: 500;
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-thickness: 1px;
    text-decoration-color: var(--sand-deep);
    transition: text-decoration-color .2s ease;
}

.bolig-kalk__contact:hover {
    text-decoration-color: var(--ink);
}

@media (max-width: 767px) {
    .bolig-kalk { padding: 26px 20px; }
    .bolig-kalk__title { font-size: 23px; }
    .bolig-kalk__amount { font-size: 38px; }
    .bolig-kalk input[type="text"].bolig-kalk__value { width: 120px; }
}
