.form-container{
    --mc-primary:#005c90;
    --mc-primary-dark:#004a73;
    --mc-border:rgba(0,0,0,.14);
    --mc-border-strong:rgba(0,0,0,.22);
    --mc-radius:16px;
    --mc-bg:#fff;
    --mc-text:#1f2a33;
}

.form-container.mc-form-skin{
    background:var(--mc-bg);
    border:1px solid var(--mc-border);
    border-radius:var(--mc-radius);
    padding:1.5rem;
    box-shadow:0 10px 24px rgba(0,0,0,.05);
}

/* Allow Bootstrap/grid columns inside forms to shrink properly */
.form-container .row > [class*="col-"]{
    min-width:0;
}

.form-container .visuallyhidden{
    position:absolute!important;
    width:1px!important;
    height:1px!important;
    padding:0!important;
    margin:-1px!important;
    overflow:hidden!important;
    clip:rect(0,0,0,0)!important;
    white-space:nowrap!important;
    border:0!important;
}

.form-container .form-section-title{
    margin:0;
    font-size:2rem;
    line-height:1.1;
    color:var(--mc-text);
}

.form-container .form-note{
    margin:0;
    color:#c62828;
    font-weight:500;
}

.form-container .form-label-required{
    color:#c62828;
}

.form-container .form-label-container,
.form-container .form-label-container strong,
.form-container > .row > [class*="col-"] > label,
.form-container > .row > [class*="col-"] > span{
    display:block;
    margin:0 0 .45rem 0;
    font-weight:600;
    color:var(--mc-text);
    font-size:.96rem;
    line-height:1.35;
}

.form-container .form__input-wrap,
.form-container .form__select-wrap{
    position:relative;
    min-width:0;
    max-width:100%;
}

.form-container .form__input-wrap input[type="text"],
.form-container .form__input-wrap textarea,
.form-container .form__input-wrap select,
.form-container .form__select-wrap input[type="text"],
.form-container .form__select-wrap textarea,
.form-container .form__select-wrap select{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    min-height:52px!important;
    display:block!important;
    padding:.8rem .95rem!important;
    border:1px solid var(--mc-border)!important;
    border-radius:12px!important;
    background:#fff!important;
    color:var(--mc-text)!important;
    line-height:1.25!important;
    box-sizing:border-box!important;
    transition:border-color .15s ease, box-shadow .15s ease, background-color .15s ease!important;
}

.form-container .form__input-wrap input[type="text"]:hover,
.form-container .form__input-wrap textarea:hover,
.form-container .form__input-wrap select:hover,
.form-container .form__select-wrap input[type="text"]:hover,
.form-container .form__select-wrap textarea:hover,
.form-container .form__select-wrap select:hover{
    border-color:var(--mc-border-strong)!important;
}

.form-container .form__input-wrap input[type="text"]:focus,
.form-container .form__input-wrap textarea:focus,
.form-container .form__input-wrap select:focus,
.form-container .form__select-wrap input[type="text"]:focus,
.form-container .form__select-wrap textarea:focus,
.form-container .form__select-wrap select:focus{
    outline:0!important;
    border-color:var(--mc-primary)!important;
    box-shadow:0 0 0 .2rem rgba(0,92,144,.14)!important;
}

.form-container textarea{
    min-height:120px!important;
    resize:vertical;
}

.form-container fieldset{
    margin:0;
    padding:0;
    border:0;
    min-width:0;
}

/* =========================
   SELECT / DROPDOWN FIXES
   ========================= */

.form-container select,
.form-container select.form__input,
.form-container .form__input-wrap select,
.form-container .form__select-wrap select{
    appearance:none!important;
    -webkit-appearance:none!important;
    -moz-appearance:none!important;

    display:block!important;

    width:100%!important;
    max-width:100%!important;
    min-width:0!important;

    /*
     * Do not force a fixed height.
     * This allows the select to size consistently with the
     * other form controls while maintaining the minimum height.
     */
    height:auto!important;
    min-height:52px!important;

    padding:.8rem 3rem .8rem .95rem!important;

    border:1px solid var(--mc-border)!important;
    border-radius:12px!important;

    background-color:#fff!important;
    color:var(--mc-text)!important;

    font:inherit!important;
    line-height:1.25!important;

    box-sizing:border-box!important;
    box-shadow:none!important;
    cursor:pointer!important;

    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M5 7.5L10 12.5L15 7.5' stroke='%231f2a33' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;
    background-repeat:no-repeat!important;
    background-position:right 1rem center!important;
    background-size:16px 16px!important;
}

.form-container select:hover,
.form-container select.form__input:hover,
.form-container .form__input-wrap select:hover,
.form-container .form__select-wrap select:hover{
    border-color:var(--mc-border-strong)!important;
}

.form-container select:focus,
.form-container select.form__input:focus,
.form-container .form__input-wrap select:focus,
.form-container .form__select-wrap select:focus{
    outline:0!important;
    border-color:var(--mc-primary)!important;
    box-shadow:0 0 0 .2rem rgba(0,92,144,.14)!important;
}

.form-container select::-ms-expand,
.form-container select.form__input::-ms-expand,
.form-container .form__input-wrap select::-ms-expand,
.form-container .form__select-wrap select::-ms-expand{
    display:none!important;
}

.form-container .form__select-wrap::after{
    content:none!important;
}

/* =========================
   SELECT2 WIDTH / OVERFLOW
   ========================= */

/*
 * Select2 can inject an inline pixel width based on the
 * original field. Keep it contained within the form column.
 */
.form-container .select2-container{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
}

/* Contain both single and multiple Select2 controls */
.form-container .select2-selection,
.form-container .select2-selection--single,
.form-container .select2-selection--multiple{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
}

/* Rendered value/text must be allowed to shrink */
.form-container .select2-selection__rendered{
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
}

/*
 * Select2's inline search field is a common source of
 * horizontal overflow because JS can inject a pixel width.
 */
.form-container .select2-search--inline{
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
}

.form-container .select2-search--inline .select2-search__field{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
}

/* Multiple-select rendered list containment */
.form-container .select2-selection--multiple .select2-selection__rendered{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
    white-space:normal!important;
}

/* Prevent selected chips from forcing the field wider */
.form-container .select2-selection--multiple .select2-selection__choice{
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
}

/* =========================
   RADIO / CHECKBOX PILLS
   ========================= */

.form-container .form__radios{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:.75rem!important;
    width:100%!important;
    margin-top:.15rem!important;
}

.form-container .form__radios--2col{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
}

.form-container .form__radios table{
    width:100%!important;
    border-collapse:separate!important;
    border-spacing:0!important;
    display:contents!important;
}

.form-container .form__radios tbody{
    display:contents!important;
}

.form-container .form__radios tr{
    display:contents!important;
}

.form-container .form__radios td{
    display:block!important;
    width:100%!important;
    padding:0!important;
    margin:0!important;
    border:0!important;
}

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

.form-container .form__radios span,
.form-container .form__radios span[index]{
    display:block!important;
    width:100%!important;
}

.form-container .form__radios td,
.form-container .form__radios span,
.form-container .form__radios span[index]{
    position:relative!important;
}

.form-container .form__radios input[type="radio"],
.form-container .form__radios input[type="checkbox"]{
    position:absolute!important;
    top:50%!important;
    left:1rem!important;
    transform:translateY(-50%)!important;
    width:1.25rem!important;
    height:1.25rem!important;
    margin:0!important;
    opacity:0!important;
    z-index:2!important;
    pointer-events:auto!important;
}

.form-container .form__radios input[type="radio"]:focus + label,
.form-container .form__radios input[type="checkbox"]:focus + label,
.form-container .form__radios input[type="radio"]:focus-visible + label,
.form-container .form__radios input[type="checkbox"]:focus-visible + label{
    outline:0!important;
    border-color:var(--mc-primary)!important;
    box-shadow:0 0 0 .2rem rgba(0,92,144,.18)!important;
}

.form-container .form__radios label{
    width:100%!important;
    min-height:52px!important;
    display:flex!important;
    align-items:center!important;
    gap:.7rem!important;
    margin:0!important;
    padding:.8rem .95rem!important;
    border:1px solid var(--mc-border)!important;
    border-radius:12px!important;
    background:#fff!important;
    color:var(--mc-text)!important;
    font-weight:500!important;
    line-height:1.35!important;
    cursor:pointer!important;
    box-sizing:border-box!important;
    transition:border-color .15s ease, box-shadow .15s ease, background-color .15s ease, color .15s ease!important;
}

.form-container .form__radios label:hover{
    border-color:rgba(0,92,144,.32)!important;
    background:#fbfdff!important;
}

.form-container .form__radios label::before{
    content:''!important;
    width:1.1rem!important;
    height:1.1rem!important;
    min-width:1.1rem!important;
    border:1.5px solid #7d8b99!important;
    background:#fff!important;
    box-sizing:border-box!important;
    flex:0 0 1.1rem!important;
}

.form-container .form__radios input[type="radio"] + label::before{
    border-radius:999px!important;
}

.form-container .form__radios input[type="checkbox"] + label::before{
    border-radius:.28rem!important;
}

.form-container .form__radios input[type="radio"]:checked + label,
.form-container .form__radios input[type="checkbox"]:checked + label{
    border-color:var(--mc-primary)!important;
    background:#f7fbfe!important;
    box-shadow:0 0 0 .2rem rgba(0,92,144,.08)!important;
}

.form-container .form__radios input[type="radio"]:checked + label::before{
    background:
    radial-gradient(circle at center, var(--mc-primary) 0 42%, transparent 43%)!important;
    border-color:var(--mc-primary)!important;
}

.form-container .form__radios input[type="checkbox"]:checked + label::before{
    content:'\2713'!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    font-size:.78rem!important;
    font-weight:700!important;
    color:#fff!important;
    background:var(--mc-primary)!important;
    border-color:var(--mc-primary)!important;
}

/* =========================
   RECAPTCHA
   ========================= */

.form-container iframe[src*="recaptcha"],
.form-container .g-recaptcha{
    max-width:100%;
    overflow:auto;
}

/* =========================
   RECAPTCHA HIDDEN TEXTAREA
   ========================= */

.form-container textarea.g-recaptcha-response,
.form-container .form__input-wrap textarea.g-recaptcha-response,
.form-container .g-recaptcha-response{
    display:none!important;
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
    position:absolute!important;
    left:-9999px!important;
    top:auto!important;
    width:1px!important;
    min-width:1px!important;
    max-width:1px!important;
    height:1px!important;
    min-height:1px!important;
    max-height:1px!important;
    padding:0!important;
    margin:0!important;
    border:0!important;
    box-shadow:none!important;
    resize:none!important;
    background:transparent!important;
    overflow:hidden!important;
}

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

@media (max-width:767.98px){

    .form-container.mc-form-skin{
        padding:1rem;
    }

    .form-container .form-section-title{
        font-size:1.65rem;
    }

    .form-container .form__radios--2col{
        grid-template-columns:1fr!important;
    }

    /*
     * No separate select height here.
     * Let the same control sizing apply consistently
     * on desktop and mobile.
     */
}