.elementor-kit-7{--e-global-color-primary:#032684;--e-global-color-secondary:#3C9EFF;--e-global-color-text:#032684;--e-global-color-accent:#61CE70;--e-global-typography-primary-font-family:"Bricolage Grotesque";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Bricolage Grotesque";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Bricolage Grotesque";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Bricolage Grotesque";--e-global-typography-accent-font-weight:500;color:var( --e-global-color-text );font-family:"Bricolage Grotesque", Sans-serif;}.elementor-kit-7 e-page-transition{background-color:#FFBC7D;}.elementor-kit-7 a{color:var( --e-global-color-secondary );font-family:"Inter", Sans-serif;}.elementor-kit-7 h1{color:var( --e-global-color-primary );font-family:"Bricolage Grotesque", Sans-serif;}.elementor-kit-7 h2{color:var( --e-global-color-text );font-size:36px;font-weight:600;}.elementor-kit-7 h3{color:var( --e-global-color-primary );}.elementor-kit-7 h4{color:var( --e-global-color-text );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){margin-block-end:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS */.page-wrap{
    max-width:760px;
    margin:40px auto;
    width:100%;
}

.form-card{
    background:#fff;
    border-radius:16px;
    overflow:hidden;
    border:1px solid #dce3f5;
}

.form-header{
    background:#1a2d6e;
    padding:1.5rem 2rem;
    display:flex;
    justify-content:space-between;
    align-items:center;
}

.form-header h1{
    color:#fff;
    margin:0;
}

.form-header span{
    color:rgba(255,255,255,.7);
}

.prog-steps{
    display:flex;
}

.prog-step{
    flex:1;
    text-align:center;
    padding:14px 10px;
    border-bottom:3px solid transparent;
}

.prog-step.active{
    background:#e8edf8;
    border-bottom:3px solid #1a2d6e;
}

.prog-step.done{
    border-bottom:3px solid #3b82c4;
}

.prog-step-num{
    width:28px;
    height:28px;
    border-radius:50%;
    background:#dce3f5;
    color:#6b7fb8;
    display:flex;
    align-items:center;
    justify-content:center;
    margin:0 auto 8px;
    font-size:12px;
    font-weight:600;
}

.prog-step-lbl{
    font-size:12px;
    color:#8a9bc4;
}

.prog-step.active .prog-step-lbl{
    color:#1a2d6e;
    font-weight:600;
}

.prog-step.done .prog-step-num{
    background:#3b82c4;
    color:#fff;
}

.prog-step.active .prog-step-num{
    background:#1a2d6e;
    color:#fff;
}

.row{
    display:grid;
    gap:14px;
    margin-bottom:14px;
}

.row.two{
    grid-template-columns:1fr 1fr;
}

.row.three{
    grid-template-columns:1fr 1fr 1fr;
}

.form-page{
    padding:2rem;
    display:none;
}

.form-page.active{
    display:block;
}

.page-title{
    display:flex;
    align-items:center;
    gap:12px;
    margin-bottom:24px;
    padding-bottom:20px;
    border-bottom:1px solid #e8edf8;
}

.page-title-icon{
    width:48px;
    height:48px;
    border-radius:12px;
    background:#e8edf8;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:22px;
}

.page-title h2{
    margin:0;
    color:#1a2d6e;
    font-size:28px;
}

.page-title p{
    margin-top:4px;
    color:#6b7280;
    font-size:14px;
}

/* FIELDS */
.field{
    display:flex;
    flex-direction:column;
    gap:4px;
}

/* FIX 1: WordPress adds margin-bottom to all labels globally */
.field > label{
    display:block !important;
    font-size:12px !important;
    color:#4a5a8a !important;
    font-weight:600 !important;
    margin:0 !important;
    padding:0 !important;
    line-height:1.2 !important;
    float:none !important;
    width:auto !important;
}

.req{
    color:#c0392b;
    margin-left:2px;
}

/* FIX 2: WordPress adds margin-bottom to inputs, selects, textareas */
.field input,
.field select,
.field textarea{
    display:block !important;
    font-size:14px;
    border-radius:9px;
    border:1.5px solid #dce3f5;
    background:#fff;
    color:#1a1a2e;
    padding:9px 12px;
    font-family:inherit;
    transition:border-color 0.2s, box-shadow 0.2s;
    margin:0 !important;
    width:100% !important;
    box-sizing:border-box !important;
}

.field input:focus,
.field select:focus,
.field textarea:focus{
    outline:none;
    border-color:#1a2d6e;
    box-shadow:0 0 0 3px rgba(26,45,110,0.09);
}

.field textarea{
    resize:vertical;
    min-height:90px;
    line-height:1.6;
}

.field select{
    appearance:auto;
    -webkit-appearance:auto;
}

.field input.invalid,
.field select.invalid,
.field textarea.invalid{
    border-color:#e24b4a;
}

/* RADIO */
.radio-group{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    margin-top:6px;
}

/* FIX 3: WordPress label styles break radio pill layout */
.radio-opt{
    display:inline-flex !important;
    align-items:center !important;
    gap:7px;
    padding:8px 16px !important;
    border:1.5px solid #dce3f5;
    border-radius:22px;
    font-size:13px;
    cursor:pointer;
    color:#1a1a2e !important;
    background:#fff;
    transition:all 0.15s;
    margin:0 !important;
    float:none !important;
    font-weight:normal !important;
    line-height:1 !important;
    width:auto !important;
}

.radio-opt:hover{
    border-color:#1a2d6e;
    background:#f0f3fa;
}

.radio-opt input[type="radio"]{
    accent-color:#1a2d6e;
    width:14px !important;
    height:14px !important;
    margin:0 !important;
    padding:0 !important;
    cursor:pointer;
    flex-shrink:0;
    display:inline-block !important;
}

/* UPLOAD */
.upload-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;
    margin-bottom:16px;
}

.upload-label{
    font-size:12px;
    font-weight:600;
    color:#4a5a8a;
    margin-bottom:8px;
}

.upload-box{
    border:2px dashed #c8d3ee;
    border-radius:13px;
    padding:1.75rem 1rem;
    text-align:center;
    background:#f7f9fd;
    cursor:pointer;
    transition:all 0.2s;
    position:relative;
}

.upload-box:hover{
    border-color:#1a2d6e;
    background:#edf1fb;
}

.upload-box input[type=file]{
    position:absolute;
    inset:0;
    opacity:0;
    cursor:pointer;
    width:100%;
    height:100%;
}

.upload-icon{
    width:48px;
    height:48px;
    border-radius:11px;
    background:#e8edf8;
    display:flex;
    align-items:center;
    justify-content:center;
    margin:0 auto 10px;
    font-size:22px;
    color:#1a2d6e;
}

.upload-box p{
    font-size:13px;
    font-weight:600;
    color:#1a2d6e;
    margin-bottom:4px;
}

.upload-box span{
    font-size:11px;
    color:#6b7280;
}

.upload-preview{
    margin-top:10px;
    padding:6px 10px;
    background:#e8edf8;
    border-radius:8px;
    font-size:11px;
    color:#1a2d6e;
    display:none;
    word-break:break-all;
}

/* INFO NOTE */
.info-note{
    display:flex;
    align-items:flex-start;
    gap:10px;
    background:#f0f3fa;
    border:1px solid #dce3f5;
    border-radius:10px;
    padding:12px 14px;
    margin-top:12px;
}

.info-note span{
    font-size:12px;
    color:#6b7280;
    line-height:1.6;
}

/* FOOTER */
.form-footer{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:1.25rem 2rem;
    border-top:1px solid #dce3f5;
    background:#f7f9fd;
}

.btn-back{
    padding:10px 22px;
    border-radius:22px;
    font-size:13px;
    border:1.5px solid #c8d3ee;
    background:#fff;
    color:#4a5a8a;
    cursor:pointer;
    display:flex;
    align-items:center;
    gap:6px;
    font-family:inherit;
}

.btn-back:disabled{
    opacity:0.35;
    cursor:default;
}

.btn-next{
    padding:10px 28px;
    border-radius:22px;
    font-size:13px;
    background:#1a2d6e;
    color:#fff;
    border:none;
    cursor:pointer;
    font-weight:600;
    display:flex;
    align-items:center;
    gap:6px;
    font-family:inherit;
}

.btn-next:hover:not(:disabled){
    background:#243d8a;
}

.btn-next:disabled{
    opacity:0.5;
    cursor:not-allowed;
}

.step-counter{
    font-size:12px;
    color:#8a9bc4;
    font-weight:500;
}

/* LOADING */
.loading-wrap{
    display:none;
    padding:3rem 2rem;
    text-align:center;
}

.spinner{
    width:48px;
    height:48px;
    border:4px solid #dce3f5;
    border-top-color:#1a2d6e;
    border-radius:50%;
    animation:spin 0.9s linear infinite;
    margin:0 auto 1rem;
}

@keyframes spin{
    to{ transform:rotate(360deg); }
}

.loading-wrap p{
    font-size:14px;
    color:#4a5a8a;
}

/* SUCCESS */
.success-wrap{
    display:none;
    padding:3rem 2rem;
    text-align:center;
}

.success-icon{
    width:68px;
    height:68px;
    border-radius:50%;
    background:#e8edf8;
    display:flex;
    align-items:center;
    justify-content:center;
    margin:0 auto 1.25rem;
    font-size:32px;
}

.success-wrap h2{
    font-size:22px;
    font-weight:700;
    color:#1a2d6e;
    margin-bottom:10px;
}

.success-wrap p{
    font-size:14px;
    color:#6b7280;
    max-width:420px;
    margin:0 auto 8px;
    line-height:1.7;
}

.success-email{
    color:#3b82c4;
    font-weight:600;
}

/* ERROR */
.error-wrap{
    display:none;
    padding:2rem;
    background:#fff5f5;
    border:1px solid #f09595;
    border-radius:12px;
    margin:1rem 2rem;
    text-align:center;
}

.error-wrap p{
    font-size:13px;
    color:#a32d2d;
    line-height:1.6;
}

.error-wrap a{
    color:#1a2d6e;
    font-weight:600;
}

.field-error{
    font-size:11px;
    color:#c0392b;
    margin-top:3px;
    display:none;
}

/* FIX: WordPress wpautop filter injects <br> tags inside .field between label and input */
.field br {
    display: none !important;
}

.form-page br {
    display: none !important;
}

/* MOBILE */
@media(max-width:768px){

    .form-page{
        padding:20px;
    }

    .row.two,
    .row.three,
    .upload-grid{
        grid-template-columns:1fr;
    }

    .form-footer{
        flex-direction:column;
        gap:15px;
    }

    .form-header{
        padding:20px;
    }

    .form-header h1{
        font-size:22px;
    }
}/* End custom CSS */