/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* Add your custom styles here */

/* =========================================================
   ABEBE HOMES
   DYNAMIC MORTGAGE CALCULATOR
========================================================= */

:root {
    --dq-gold: #d8b653;
    --dq-gold-dark: #c7a444;
    --dq-dark: #111827;
    --dq-text: #242424;
    --dq-muted: #747474;
    --dq-bg: #f2f2f0;
    --dq-card: #ffffff;
    --dq-border: #deded9;
}


/* =========================================================
   WRAPPER
========================================================= */

.dq-mortgage-wrapper {
    width: 100%;
    text-align: center;
}


/* =========================================================
   MORTGAGE CALCULATOR BUTTON
   Match Abebe Homes CONTACT US button
========================================================= */

.dq-mortgage-wrapper {
    width: 100%;
    text-align: center;
}

.dq-mortgage-wrapper .dq-mortgage-open {
    appearance: none !important;
    -webkit-appearance: none !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: auto !important;
    min-width: 200px !important;

    gap: 8px !important;

    padding: 12px 24px !important;
    margin: 0 auto !important;

    background: #d9b653 !important;

    border: 0 !important;
    border-radius: 50px !important;

    color: #ffffff !important;

    font-family: inherit !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;

    text-transform: uppercase !important;
    text-decoration: none !important;

    box-shadow: none !important;

    cursor: pointer !important;

    transition:
        background-color .25s ease,
        transform .25s ease !important;
}


/* Hover */

.dq-mortgage-wrapper .dq-mortgage-open:hover,
.dq-mortgage-wrapper .dq-mortgage-open:focus {

    background: #c8a542 !important;

    color: #ffffff !important;

    border: 0 !important;

    transform: translateY(-1px);
}


/* Calculator icon */

.dq-mortgage-wrapper .dq-calc-icon {

    display: inline-flex !important;

    align-items: center !important;
    justify-content: center !important;

    color: #ffffff !important;

    margin: 0 !important;
}


.dq-mortgage-wrapper .dq-calc-icon svg {

    display: block;

    width: 16px;
    height: 16px;

    stroke: currentColor;
}


/* Keep icon white on hover */

.dq-mortgage-wrapper .dq-mortgage-open:hover .dq-calc-icon,
.dq-mortgage-wrapper .dq-mortgage-open:focus .dq-calc-icon {

    color: #ffffff !important;
}


/* Mobile */

@media (max-width: 767px) {

    .dq-mortgage-wrapper .dq-mortgage-open {

        min-width: 200px !important;

        padding: 12px 22px !important;

        font-size: 14px !important;
    }
}

/* =========================================================
   MODAL
========================================================= */

.dq-mortgage-modal {

    display: none;

    position: fixed;

    inset: 0;

    z-index: 9999999;
}


.dq-mortgage-modal.dq-active {
    display: block;
}


.dq-mortgage-overlay {

    position: absolute;

    inset: 0;

    background: rgba(8, 12, 18, .72);

    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
}


/* =========================================================
   POPUP WINDOW
========================================================= */

.dq-mortgage-window {

    position: relative;

    width: min(1080px, calc(100% - 40px));

    max-height: 92vh;

    overflow-x: hidden;
    overflow-y: auto;

    margin: 4vh auto;

    padding: 42px;

    background: var(--dq-bg);

    border-radius: 2px;

    box-shadow:
        0 30px 90px rgba(0, 0, 0, .28);

    text-align: left;
}


/* =========================================================
   CLOSE BUTTON
========================================================= */

.dq-mortgage-close {

    appearance: none;
    -webkit-appearance: none;

    position: absolute;

    top: 14px;
    right: 18px;

    z-index: 10;

    display: flex;

    width: 40px;
    height: 40px;

    align-items: center;
    justify-content: center;

    padding: 0;

    background: transparent;

    border: 0;

    color: var(--dq-dark);

    font-family: Arial, sans-serif;
    font-size: 34px;
    font-weight: 300;
    line-height: 1;

    cursor: pointer;

    transition:
        color .2s ease,
        transform .2s ease;
}


.dq-mortgage-close:hover {

    color: var(--dq-gold-dark);

    transform: rotate(90deg);
}


/* =========================================================
   HEADER
========================================================= */

.dq-mortgage-header {

    max-width: 700px;

    margin-bottom: 30px;

    text-align: center;

    margin-left: auto;
    margin-right: auto;
}


.dq-popup-eyebrow {

    display: block;

    margin-bottom: 8px;

    color: var(--dq-gold-dark);

    font-size: 11px;
    font-weight: 700;

    letter-spacing: 2.2px;
}


.dq-mortgage-header h2 {

    margin: 0 0 9px;

    padding: 0;

    color: var(--dq-dark);

    font-family: inherit;

    font-size: 34px;
    font-weight: 500;
    line-height: 1.2;
}


.dq-mortgage-header p {

    margin: 0;

    color: var(--dq-muted);

    font-size: 14px;
    line-height: 1.6;
}


/* =========================================================
   MAIN GRID
========================================================= */

.dq-mortgage-grid {

    display: grid;

    grid-template-columns:
        minmax(0, .95fr)
        minmax(0, 1.05fr);

    gap: 28px;

    align-items: start;
}


/* =========================================================
   CARDS
========================================================= */

.dq-mortgage-fields,
.dq-payment-card,
.dq-summary-card,
.dq-amortization {

    background: var(--dq-card);

    border: 1px solid var(--dq-border);

    border-radius: 2px;

    box-shadow:
        0 5px 25px rgba(0, 0, 0, .025);
}


.dq-mortgage-fields {

    padding: 27px;
}


.dq-payment-card,
.dq-summary-card {

    padding: 28px;
}


/* =========================================================
   FORM FIELDS
========================================================= */

.dq-field {

    margin: 0 0 20px;
}


.dq-field:last-child {

    margin-bottom: 0;
}


.dq-field label {

    display: block;

    margin: 0 0 7px;

    color: var(--dq-text);

    font-family: inherit;

    font-size: 13px;
    font-weight: 600;

    line-height: 1.3;
}


.dq-field-note {

    margin-top: 5px;

    color: #969696;

    font-size: 11px;
    line-height: 1.4;
}


/* =========================================================
   INPUT CONTAINERS
========================================================= */

.dq-input-prefix,
.dq-input-suffix {

    display: flex;

    min-height: 46px;

    align-items: center;

    overflow: hidden;

    background: #ffffff;

    border: 1px solid #d8d8d3;

    border-radius: 1px;

    transition:
        border-color .2s ease,
        box-shadow .2s ease;
}


.dq-input-prefix:focus-within,
.dq-input-suffix:focus-within {

    border-color: var(--dq-gold);

    box-shadow:
        0 0 0 2px rgba(216, 182, 83, .12);
}


.dq-readonly {

    background: #f6f6f4;
}


.dq-input-prefix > span {

    padding-left: 13px;

    color: #777;

    font-size: 14px;
}


.dq-input-suffix > span {

    padding-right: 13px;

    color: #777;

    font-size: 12px;

    white-space: nowrap;
}


/* =========================================================
   NUMBER INPUTS
========================================================= */

.dq-field input[type="number"] {

    appearance: textfield;
    -moz-appearance: textfield;

    width: 100%;

    min-width: 0;

    padding: 11px 12px;

    margin: 0;

    background: transparent;

    border: 0 !important;
    border-radius: 0;

    box-shadow: none !important;

    outline: none;

    color: var(--dq-dark);

    font-family: inherit;

    font-size: 14px;
    font-weight: 500;
}


.dq-field input[type="number"]::-webkit-inner-spin-button,
.dq-field input[type="number"]::-webkit-outer-spin-button {

    margin: 0;

    -webkit-appearance: none;
}


.dq-field input[readonly] {

    color: #666;

    cursor: default;
}


/* =========================================================
   TWO INPUTS
========================================================= */

.dq-two-inputs {

    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        100px;

    gap: 8px;
}


/* =========================================================
   RANGE SLIDERS
========================================================= */

.dq-field input[type="range"] {

    appearance: none;
    -webkit-appearance: none;

    width: 100%;
    height: 4px;

    margin: 13px 0 0;

    padding: 0;

    background: #deded9;

    border: 0;
    border-radius: 20px;

    outline: none;

    cursor: pointer;
}


.dq-field input[type="range"]::-webkit-slider-thumb {

    appearance: none;
    -webkit-appearance: none;

    width: 17px;
    height: 17px;

    background: var(--dq-gold);

    border: 2px solid #ffffff;
    border-radius: 50%;

    box-shadow:
        0 1px 5px rgba(0, 0, 0, .2);

    cursor: pointer;
}


.dq-field input[type="range"]::-moz-range-thumb {

    width: 14px;
    height: 14px;

    background: var(--dq-gold);

    border: 2px solid #ffffff;
    border-radius: 50%;

    cursor: pointer;
}


/* =========================================================
   RESULTS
========================================================= */

.dq-payment-card {

    margin-bottom: 20px;

    text-align: center;
}


.dq-result-label {

    display: block;

    margin-bottom: 9px;

    color: var(--dq-gold-dark);

    font-size: 10px;
    font-weight: 700;

    letter-spacing: 1.7px;
}


.dq-monthly-payment {

    margin: 0;

    color: var(--dq-dark);

    font-family: inherit;

    font-size: 46px;
    font-weight: 500;

    line-height: 1.1;
}


.dq-payment-caption {

    margin: 8px 0 24px;

    color: var(--dq-muted);

    font-size: 12px;
    line-height: 1.5;
}


/* =========================================================
   PAYMENT BREAKDOWN
========================================================= */

.dq-payment-breakdown {

    padding-top: 8px;

    border-top: 1px solid #eeeeea;

    text-align: left;
}


.dq-payment-breakdown > div {

    display: flex;

    justify-content: space-between;

    gap: 20px;

    padding: 10px 0;

    border-bottom: 1px solid #eeeeea;

    color: #626262;

    font-size: 13px;
}


.dq-payment-breakdown > div:last-child {

    border-bottom: 0;
}


.dq-payment-breakdown strong {

    color: var(--dq-dark);

    font-weight: 600;

    white-space: nowrap;
}


/* =========================================================
   CARD HEADINGS
========================================================= */

.dq-card-heading {

    display: flex;

    align-items: center;

    gap: 10px;

    margin-bottom: 14px;
}


.dq-heading-line {

    display: block;

    width: 3px;
    height: 23px;

    background: var(--dq-gold);
}


.dq-card-heading h3 {

    margin: 0;

    padding: 0;

    color: var(--dq-dark);

    font-family: inherit;

    font-size: 18px;
    font-weight: 500;
}


/* =========================================================
   SUMMARY
========================================================= */

.dq-summary-row {

    display: flex;

    justify-content: space-between;

    align-items: center;

    gap: 20px;

    padding: 11px 0;

    border-bottom: 1px solid #eeeeea;

    font-size: 13px;
}


.dq-summary-row:last-child {

    border-bottom: 0;
}


.dq-summary-row span {

    color: #686868;
}


.dq-summary-row strong {

    color: var(--dq-dark);

    font-weight: 600;

    text-align: right;
}


/* =========================================================
   AMORTIZATION BUTTON
========================================================= */

.dq-amort-button {

    appearance: none;
    -webkit-appearance: none;

    display: block;

    width: 100%;

    margin: 20px 0 0;

    padding: 14px 20px;

    background: var(--dq-gold);

    border: 1px solid var(--dq-gold);
    border-radius: 30px;

    color: #ffffff;

    font-family: inherit;

    font-size: 13px;
    font-weight: 600;

    line-height: 1.2;

    cursor: pointer;

    transition:
        background-color .2s ease,
        border-color .2s ease;
}


.dq-amort-button:hover {

    background: var(--dq-gold-dark);

    border-color: var(--dq-gold-dark);
}


/* =========================================================
   AMORTIZATION
========================================================= */

.dq-amortization {

    display: none;

    margin-top: 28px;

    padding: 28px;
}


.dq-amortization.dq-show {

    display: block;
}


.dq-table-wrap {

    width: 100%;

    overflow-x: auto;
}


.dq-amortization table {

    width: 100%;

    margin: 0;

    border-collapse: collapse;

    background: transparent;
}


.dq-amortization th,
.dq-amortization td {

    padding: 12px 13px;

    border: 0;
    border-bottom: 1px solid #e8e8e4;

    color: #555;

    font-size: 12px;

    text-align: right;
}


.dq-amortization th {

    background: #f4f4f1;

    color: var(--dq-dark);

    font-weight: 600;
}


.dq-amortization th:first-child,
.dq-amortization td:first-child {

    text-align: left;
}


/* =========================================================
   DISCLAIMER
========================================================= */

.dq-disclaimer {

    max-width: 850px;

    margin: 22px auto 0;

    color: #8b8b8b;

    font-size: 10px;
    line-height: 1.6;

    text-align: center;
}


/* =========================================================
   PAGE SCROLL LOCK
========================================================= */

body.dq-mortgage-opened {

    overflow: hidden;
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 900px) {

    .dq-mortgage-window {

        width: calc(100% - 30px);

        padding: 35px 25px;
    }


    .dq-mortgage-grid {

        grid-template-columns: 1fr;

        gap: 20px;
    }


    .dq-mortgage-results {

        width: 100%;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 767px) {

    .dq-mortgage-open {

        min-width: 0;

        width: auto;

        padding: 12px 20px;

        font-size: 15px;
    }


    .dq-mortgage-window {

        width: calc(100% - 16px);

        max-height: 96vh;

        margin: 2vh auto;

        padding: 32px 14px 24px;
    }


    .dq-mortgage-close {

        top: 7px;
        right: 8px;
    }


    .dq-mortgage-header {

        margin-bottom: 22px;

        padding: 0 15px;
    }


    .dq-mortgage-header h2 {

        font-size: 27px;
    }


    .dq-mortgage-header p {

        font-size: 13px;
    }


    .dq-mortgage-grid {

        grid-template-columns: 1fr;

        gap: 16px;
    }


    .dq-mortgage-fields,
    .dq-payment-card,
    .dq-summary-card,
    .dq-amortization {

        padding: 19px;
    }


    .dq-two-inputs {

        grid-template-columns:
            minmax(0, 1fr)
            90px;
    }


    .dq-monthly-payment {

        font-size: 35px;
    }


    .dq-payment-breakdown > div {

        gap: 10px;

        font-size: 12px;
    }


    .dq-summary-row {

        gap: 10px;

        font-size: 12px;
    }


    .dq-amortization {

        margin-top: 16px;
    }


    .dq-amortization th,
    .dq-amortization td {

        min-width: 95px;

        padding: 10px;

        font-size: 11px;
    }

}


/* =========================================================
   VERY SMALL PHONES
========================================================= */

@media (max-width: 420px) {

    .dq-two-inputs {

        grid-template-columns: 1fr;
    }


    .dq-monthly-payment {

        font-size: 31px;
    }


    .dq-payment-breakdown > div,
    .dq-summary-row {

        align-items: flex-start;
    }

}