/* =========================================================
   INTELLIVEST - CLIENT PORTAL
   Page-specific layout + Formidable Forms styling

   Global typography, colors, buttons, container,
   CTA and RTL foundation come from main.css.
========================================================= */

label#field_iz1yz_label {
    opacity: 0;
    visibility: hidden;
}

/* =========================================================
   1. PAGE
========================================================= */

.client-portal-page {
    background: var(--white);
}


/* =========================================================
   2. CLIENT PORTAL SECTION
========================================================= */

.client-portal {
    padding: 32px 0 52px;
    background: var(--white);
}


/* =========================================================
   3. OUTER LIGHT PANEL
========================================================= */

.client-portal__panel {
    width: 100%;

    padding:
        58px
        24px
        64px;

    background: #F4F8FC;

    border-radius: var(--radius-md);

    box-shadow:
        0 2px 3px rgba(7, 33, 56, 0.18);
}


/* =========================================================
   4. PAGE INTRO
========================================================= */

.client-portal__header {
    max-width: 760px;

    margin:
        0
        auto
        38px;

    text-align: center;
}


/* =========================================================
   5. EYEBROW
========================================================= */

.client-portal__eyebrow {
    display: flex;

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

    gap: 14px;

    margin-bottom: 17px;
}

.client-portal__eyebrow-line {
    display: block;

    width: 42px;
    height: 1px;

    background: var(--navy-light);
}

.client-portal__eyebrow-text {
    font-family: var(--font-heading);

    font-size: var(--fs-xs);
    font-weight: var(--fw-extrabold);
    line-height: var(--lh-eyebrow);

    color: var(--copper);

    text-transform: uppercase;
}


/* =========================================================
   6. TITLE
========================================================= */

.client-portal__title {
    margin:
        0
        0
        9px;

    font-size: var(--fs-h2);
    font-weight: var(--fw-extrabold);
    line-height: var(--lh-heading);

    color: var(--navy);
}

.client-portal__title span {
    color: var(--copper);
}


/* =========================================================
   7. INTRO TEXT
========================================================= */

.client-portal__intro {
    max-width: 700px;

    margin: 0 auto;

    font-size: var(--fs-body);
    line-height: var(--lh-copy-short);

    color: var(--body-color);
}


/* =========================================================
   8. FORM CARD
========================================================= */

.client-portal__form-card {
    width: 100%;
    max-width: 620px;

    margin: 0 auto;

    padding:
        36px
        40px
        54px;

    background: var(--white);

    border-radius: var(--radius-sm);

    box-shadow:
        0 3px 4px rgba(7, 33, 56, 0.22);
}


/* =========================================================
   9. FORMIDABLE BASE
========================================================= */

.client-portal__form-card .frm_forms,
.client-portal__form-card .frm_form_fields,
.client-portal__form-card .frm_form_field {
    font-family: var(--font-body);
}

.client-portal__form-card .frm_forms,
.client-portal__form-card .frm_form_fields {
    margin: 0;
}


/* =========================================================
   10. FORM GRID
========================================================= */

.client-portal__form-card .frm_fields_container {
    display: grid;

    grid-template-columns:
        repeat(12, minmax(0, 1fr));

    column-gap: 16px;
    row-gap: 0;
}

.client-portal__form-card .frm_form_field {
    grid-column: 1 / -1;

    margin:
        0
        0
        17px;
}


/* Half width Formidable fields */

.client-portal__form-card .frm_half,
.client-portal__form-card .frm6 {
    grid-column: span 6;
}


/* =========================================================
   11. LABELS
========================================================= */

.client-portal__form-card .frm_primary_label,
.client-portal__form-card .frm_form_field > label {
    display: block;

    margin:
        0
        0
        7px;

    padding: 0;

    font-family: var(--font-heading);

    font-size: var(--fs-body);
    font-weight: var(--fw-extrabold);
    line-height: var(--lh-label);

    color: var(--navy);
}

.client-portal__form-card .frm_required {
    color: var(--navy);
}


/* =========================================================
   12. INPUTS
========================================================= */

.client-portal__form-card input[type="text"],
.client-portal__form-card input[type="email"],
.client-portal__form-card input[type="tel"],
.client-portal__form-card input[type="number"],
.client-portal__form-card input[type="url"],
.client-portal__form-card select,
.client-portal__form-card textarea {
    display: block;

    width: 100%;

    margin: 0;

    padding:
        9px
        12px;

    font-family: var(--font-body);

    font-size: var(--fs-small);
    font-weight: var(--fw-regular);
    line-height: 1.4;

    color: var(--text-dark);

    background: var(--white);

    border:
        1px
        solid
        #E0E5EA;

    border-radius: var(--radius-sm);

    box-shadow: none;

    outline: none;

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


/* Normal field height */

.client-portal__form-card input[type="text"],
.client-portal__form-card input[type="email"],
.client-portal__form-card input[type="tel"],
.client-portal__form-card input[type="number"],
.client-portal__form-card input[type="url"],
.client-portal__form-card select {
    min-height: 40px;
}


/* Textarea */

.client-portal__form-card textarea {
    min-height: 102px;
    resize: vertical;
}


/* Focus */

.client-portal__form-card input[type="text"]:focus,
.client-portal__form-card input[type="email"]:focus,
.client-portal__form-card input[type="tel"]:focus,
.client-portal__form-card input[type="number"]:focus,
.client-portal__form-card input[type="url"]:focus,
.client-portal__form-card select:focus,
.client-portal__form-card textarea:focus {
    border-color: var(--copper);

    box-shadow:
        0 0 0 3px rgba(189, 113, 62, 0.10);
}


/* =========================================================
   13. NAME FIELD
========================================================= */

.client-portal__form-card
.frm_form_field.frm_first_half,

.client-portal__form-card
.frm_form_field.frm_last_half {
    grid-column: span 6;
}


/* First / Last labels */

.client-portal__form-card .frm_description,
.client-portal__form-card
.frm_form_field
.frm_description {
    margin-top: 5px;

    font-size: var(--fs-small);
    line-height: var(--lh-label);

    color: var(--body-color);
}


/* =========================================================
   14. RADIO BUTTONS
========================================================= */

.client-portal__form-card .frm_radio {
    display: flex;

    align-items: center;

    min-height: 23px;

    margin: 0;
}

.client-portal__form-card .frm_radio label {
    display: inline-flex;

    align-items: center;

    gap: 8px;

    margin: 0;

    font-family: var(--font-body);

    font-size: var(--fs-small);
    font-weight: var(--fw-regular);
    line-height: 1.4;

    color: var(--body-color);

    cursor: pointer;
}

.client-portal__form-card input[type="radio"] {
    appearance: none;
    -webkit-appearance: none;

    width: 12px;
    height: 12px;

    flex: 0 0 12px;

    margin: 0;

    padding: 0;

    background: var(--white);

    border:
        1px
        solid
        #D9E1E7;

    border-radius: 50%;

    box-shadow: none;

    cursor: pointer;
}

.client-portal__form-card input[type="radio"]:checked {
    background: var(--copper);

    border:
        3px
        solid
        var(--white);

    box-shadow:
        0 0 0 1px var(--copper);
}


/* =========================================================
   15. CHECKBOX
========================================================= */

.client-portal__form-card .frm_checkbox {
    margin:
        1px
        0
        0;
}

.client-portal__form-card .frm_checkbox label {
    display: flex;

    align-items: flex-start;

    gap: 9px;

    margin: 0;

    font-family: var(--font-body);

    font-size: var(--fs-small);
    font-weight: var(--fw-regular);
    line-height: 1.55;

    color: var(--body-color);

    cursor: pointer;
}

.client-portal__form-card input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;

    width: 15px;
    height: 15px;

    flex: 0 0 15px;

    margin:
        3px
        0
        0;

    padding: 0;

    background: var(--white);

    border:
        1px
        solid
        #D5DDE4;

    border-radius: 3px;

    box-shadow: none;

    cursor: pointer;
}

.client-portal__form-card input[type="checkbox"]:checked {
    background-color: var(--copper);
    border-color: var(--copper);
}


/* =========================================================
   SUBMIT BUTTON
   Match global .btn.btn-secondary
========================================================= */

.client-portal-page
.client-portal__form-card
.frm_forms
.frm_submit
button.frm_button_submit,
.client-portal-page
.client-portal__form-card
.frm_forms
.frm_submit
input[type="submit"] {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: auto !important;
    min-width: 0 !important;
    min-height: var(--button-height) !important;

    margin: 0 !important;

    padding:
        8px
        var(--button-padding-inline) !important;

    font-family: var(--font-body) !important;
    font-size: var(--fs-button) !important;
    font-weight: var(--fw-medium) !important;
    line-height: var(--lh-button) !important;

    color: #FFFFFF !important;

    background: var(--gradient-secondary) !important;

    border:
        1px
        solid
        var(--secondary-dark) !important;

    border-radius: var(--radius-sm) !important;

    box-shadow: none !important;

    text-align: center !important;
    text-decoration: none !important;

    cursor: pointer !important;

    transition:
        background 0.3s ease,
        border-color 0.3s ease,
        color 0.3s ease !important;
}


/* Hover */

.client-portal-page
.client-portal__form-card
.frm_forms
.frm_submit
button.frm_button_submit:hover,
.client-portal-page
.client-portal__form-card
.frm_forms
.frm_submit
button.frm_button_submit:focus,
.client-portal-page
.client-portal__form-card
.frm_forms
.frm_submit
input[type="submit"]:hover,
.client-portal-page
.client-portal__form-card
.frm_forms
.frm_submit
input[type="submit"]:focus {
    color: #FFFFFF !important;

    background: var(--gradient-secondary-hover) !important;

    border-color: var(--secondary-dark) !important;

    box-shadow: none !important;
    outline: none !important;
}


/* Submit wrapper */

.client-portal-page
.client-portal__form-card
.frm_submit {
    margin-top: 5px !important;
}


/* =========================================================
   17. ERRORS / SUCCESS
========================================================= */

.client-portal__form-card .frm_error {
    margin-top: 5px;

    font-size: var(--fs-xs);
    line-height: 1.4;

    color: #B42318;
}

.client-portal__form-card .frm_error_style {
    margin:
        0
        0
        20px;

    padding:
        12px
        14px;

    background: #FFF4F3;

    border:
        1px
        solid
        #F1B4AF;

    border-radius: var(--radius-sm);

    color: #8E1B14;

    font-size: var(--fs-small);
}

.client-portal__form-card .frm_message {
    margin: 0;

    padding:
        18px
        20px;

    background: #F1FAF4;

    border:
        1px
        solid
        #B8D9C4;

    border-radius: var(--radius-sm);

    color: #225C36;

    font-size: var(--fs-body);
}

.client-portal__form-notice {
    margin: 0;
    text-align: center;
}


/* =========================================================
   18. FORMIDABLE CLEANUP
========================================================= */

.client-portal__form-card fieldset {
    min-width: 0;

    margin: 0;
    padding: 0;

    border: 0;
}

.client-portal__form-card
.frm_form_field:last-child {
    margin-bottom: 0;
}


/* =========================================================
   19. RTL / FARSI
========================================================= */

html[dir="rtl"]
.client-portal__form-card,

html[lang^="fa"]
.client-portal__form-card {
    text-align: right;
}


html[dir="rtl"]
.client-portal__form-card
.frm_radio label,

html[dir="rtl"]
.client-portal__form-card
.frm_checkbox label,

html[lang^="fa"]
.client-portal__form-card
.frm_radio label,

html[lang^="fa"]
.client-portal__form-card
.frm_checkbox label {
    flex-direction: row;
}


html[dir="rtl"]
.client-portal__form-card
.frm_submit,

html[lang^="fa"]
.client-portal__form-card
.frm_submit {
    text-align: right;
}


/* =========================================================
   20. TABLET
========================================================= */

@media (max-width: 991px) {

    .client-portal {
        padding:
            28px
            0
            36px;
    }

    .client-portal__panel {
        padding:
            50px
            24px
            56px;
    }

    .client-portal__header {
        margin-bottom: 34px;
    }

    .client-portal__form-card {
        max-width: 620px;

        padding:
            34px
            36px
            48px;
    }
}


/* =========================================================
   21. MOBILE
========================================================= */

@media (max-width: 767px) {

    .client-portal {
        padding:
            20px
            0
            28px;
    }

    .client-portal__panel {
        padding:
            40px
            18px
            42px;
    }

    .client-portal__header {
        margin-bottom: 28px;
    }

    .client-portal__eyebrow {
        gap: 10px;

        margin-bottom: 14px;
    }

    .client-portal__eyebrow-line {
        width: 28px;
    }

    .client-portal__eyebrow-text {
        font-size: var(--fs-2xs);
    }

    .client-portal__intro {
        max-width: 520px;

        font-size: var(--fs-small);
    }

    .client-portal__form-card {
        padding:
            28px
            24px
            38px;
    }

    .client-portal__form-card
    .frm_fields_container {
        grid-template-columns: 1fr;

        column-gap: 0;
    }

    .client-portal__form-card
    .frm_form_field,

    .client-portal__form-card
    .frm_half,

    .client-portal__form-card
    .frm6,

    .client-portal__form-card
    .frm_form_field.frm_first_half,

    .client-portal__form-card
    .frm_form_field.frm_last_half {
        grid-column: 1 / -1;
    }

    .client-portal__form-card
    .frm_primary_label,

    .client-portal__form-card
    .frm_form_field > label {
        font-size: var(--fs-small);
    }
}


/* =========================================================
   22. SMALL MOBILE
========================================================= */

@media (max-width: 480px) {

    .client-portal {
        padding-top: 16px;
    }

    .client-portal__panel {
        padding:
            34px
            14px
            36px;
    }

    .client-portal__eyebrow-line {
        width: 20px;
    }

    .client-portal__title {
        margin-bottom: 10px;
    }

    .client-portal__form-card {
        padding:
            24px
            18px
            32px;
    }

    .client-portal__form-card
    .frm_form_field {
        margin-bottom: 15px;
    }

    .client-portal__form-card
    .frm_submit button,

    .client-portal__form-card
    .frm_submit input[type="submit"],

    .client-portal__form-card
    button[type="submit"] {
        width: auto;
    }
}

/* =========================================================
   FORMIDABLE RADIO BUTTON FIX
========================================================= */

.client-portal-page
.client-portal__form-card
.frm_forms
.frm_radio
input[type="radio"] {
    -webkit-appearance: none !important;
    appearance: none !important;

    width: 16px !important;
    height: 16px !important;
    min-width: 16px !important;

    margin: 0 8px 0 0 !important;
    padding: 0 !important;

    border: 1.5px solid #B7C0CA !important;
    border-radius: 50% !important;

    background: #FFFFFF !important;
    box-shadow: none !important;

    position: relative !important;
    vertical-align: middle !important;

    cursor: pointer !important;
}


/* Checked State */

.client-portal-page
.client-portal__form-card
.frm_forms
.frm_radio
input[type="radio"]:checked {
    border-color: var(--secondary) !important;
    background: #FFFFFF !important;
}


/* Inner Selected Dot */

.client-portal-page
.client-portal__form-card
.frm_forms
.frm_radio
input[type="radio"]:checked::before {
    content: "" !important;

    position: absolute !important;

    width: 8px !important;
    height: 8px !important;

    top: 50% !important;
    left: 50% !important;

    transform: translate(-50%, -50%) !important;

    border-radius: 50% !important;

/*     background: var(--secondary) !important; */

    margin: 0 !important;
}


/* Focus */

.client-portal-page
.client-portal__form-card
.frm_forms
.frm_radio
input[type="radio"]:focus {
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(189, 113, 62, 0.15) !important;
}


/* Radio Label Alignment */

.client-portal-page
.client-portal__form-card
.frm_forms
.frm_radio label {
    display: inline-flex !important;
    align-items: center !important;

    cursor: pointer !important;
}