/* BS5: modal-lg is 800px vs BS3 900px — restore wider default */
@media (min-width: 992px) {
    .modal-lg,
    .modal-xl {
        --bs-modal-width: 900px;
    }
}

#loading {
    position:fixed;
    top:50%;
    left:50%;
    z-index:1104;
}

.main-container {
    position: relative;
    overflow-x: hidden;
}

.half-circle-background {
    width: 200%;
    height: 242px;
    border-radius: 0 0 75% 75%;
    background-color: #00577B;
    position: absolute;
    right: -50%;
    z-index: 0;
}

.main-container > .container {
    position: relative;
    z-index: 1;
}

.p-3.bg-light.border.rounded {
    position: relative;
}

.top-buffer {
    margin-top: 10px;
}

 .no-wrap {
    white-space: nowrap;
}

.hiddenElement {
visibility: hidden;
display: none;
}

.hide {
    display: none !important;
}

.noBorder {
    border: 0;
}

#idletimeout { 
    background:#CC5100; 
    border:3px solid #FF6500; 
    color:#fff; 
    font-family:arial, sans-serif; 
    text-align:center; 
    font-size:12px; 
    padding:10px; 
    position:relative; 
    top:0px; 
    left:0; 
    right:0; 
    z-index:100000;  
}
#idletimeout a { 
    color:#fff; 
    font-weight:bold 
}
#idletimeout span { 
    font-weight:bold 
}

.error {
    color:#FF0000;
}
.color-red {
    color: #cb262b;
}

.color-white {
    color: white;
}

.color-black {
    color: black;
}

.background-white {
    background-color: white !important;
}
img {
    max-width: 100%;
    height: auto;
}

span.fa {
    margin-left:  10px;
    margin-right: 10px;
    color: black;
}

.back-button-appearance {
-webkit-appearance: none;
-moz-appearance: none;
	color: #777777;
}

td {
    border: 1px solid black;
}

.table-padding {
    padding-right: 25%;
}

.column-sizing {
    width: 70%;
}

.form-control {
    color: #000000;
    border: 1px solid #ECECEC;
    border-radius: 4px;
}

.form-control:focus {
    color: #000000;
    border: 1px solid #86b7fe;
    border-radius: 4px;
    box-shadow: 0 0 0 .125rem rgba(13, 110, 253, .25);
    outline: 0;
}

label {
    color: #BBBBBB;
    font-weight: 700; /* BS5: Restore bold labels */
}

.radio label {
    color: black
}

.has-float-label {
    display: block;
    position: relative;
}

.has-float-label label, .has-float-label > span {
    position: absolute;
    left: 0;
    top: 0;
    cursor: text;
    font-size: 75%;
    opacity: 1;
    -webkit-transition: all .2s;
    transition: all .2s;
    top: -.5em;
    left: 12px;
    z-index: 3;
    line-height: 1;
    padding: 0 1px;
}

.has-float-label label::after, .has-float-label > span::after {
    content: " ";
    display: block;
    position: absolute;
    background: white;
    height: 2px;
    top: 50%;
    left: -.2em;
    right: -.2em;
    z-index: -1;
}

.has-float-label .form-control::-webkit-input-placeholder {
    opacity: 1;
    -webkit-transition: all .2s;
    transition: all .2s;
}

.has-float-label .form-control::-moz-placeholder {
    opacity: 1;
    transition: all .2s;
}

.has-float-label .form-control:-ms-input-placeholder {
    opacity: 1;
    transition: all .2s;
}

.has-float-label .form-control::placeholder {
    opacity: 1;
    -webkit-transition: all .2s;
    transition: all .2s;
}

.has-float-label .form-control:placeholder-shown:not(:focus)::-webkit-input-placeholder {
    opacity: .5;
}

.has-float-label .form-control:placeholder-shown:not(:focus)::-moz-placeholder {
    opacity: .5;
}

.has-float-label .form-control:placeholder-shown:not(:focus):-ms-input-placeholder {
    opacity: .5;
}

.has-float-label .form-control:placeholder-shown:not(:focus)::placeholder {
    opacity: .5;
}

.has-float-label .form-control:placeholder-shown:not(:focus) + * {
    font-size: 130%;
    opacity: .5;
    top: .5em;
    font-weight: normal;
}

.input-group .has-float-label {
    display: table-cell;
}

.input-group .has-float-label .form-control {
    border-radius: 4px;
}

.input-group .has-float-label:not(:last-child) .form-control {
    border-bottom-right-radius: 0;
    border-top-right-radius: 0;
}

.input-group .has-float-label:not(:first-child) .form-control {
    border-bottom-left-radius: 0;
    border-top-left-radius: 0;
    margin-left: -1px;
}

/*Select floating label*/

.floating-label {
    position: relative;
}

.floating-input,
.floating-select {
    padding: 4px 4px;
}

.floating-input:focus,
.floating-select:focus {
    outline: none;
}

 .floating-label label {
    position: absolute;
    pointer-events: none;
    left: 12px;
    top: -.5em;
    transition: 0.2s ease all;
    -moz-transition: 0.2s ease all;
    -webkit-transition: 0.2s ease all;
    opacity: 1;
    font-size: 75%;
    font-weight: 700;
    line-height: 1;
    padding: 0 4px;
    background: var(--bs-body-bg, #fff);
    z-index: 3;
}

/* Bug 103032: Empty .floating-label selects (only used by the State dropdown
   on the Avibra customer information form) used to render their label
   centered INSIDE the field at 130% size as a fake placeholder, then
   animate up to a small bold notch above the field once a value was
   chosen. Every neighbouring .has-float-label input shows its label as
   the small bold notch from page-load (the inputs have no placeholder
   attribute, so :placeholder-shown never matches), so State stuck out as
   the only field with its label sitting inside the box — QA flagged it
   as "State label is displayed inside the field". The lifted-up state is
   now the default on .floating-label label (above) — the old
   focus/non-empty animation rule that used to live here was dead code
   after the default change and has been removed. */

/* active state */

.floating-input:focus ~ .bar:before,
.floating-input:focus ~ .bar:after,
.floating-select:focus ~ .bar:before,
.floating-select:focus ~ .bar:after {
    width: 50%;
}

*,
*:before,
*:after {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

.floating-textarea {
    min-height: 30px;
    max-height: 260px;
    overflow: hidden;
    overflow-x: hidden;
}


/* highlighter */

.highlight {
    position: absolute;
    height: 50%;
    width: 100%;
    top: 15%;
    left: 0;
    pointer-events: none;
    opacity: 0.5;
}


/* active state */

.floating-input:focus ~ .highlight,
.floating-select:focus ~ .highlight {
    -webkit-animation: inputHighlighter 0.3s ease;
    -moz-animation: inputHighlighter 0.3s ease;
    animation: inputHighlighter 0.3s ease;
}


/* animation */

@-webkit-keyframes inputHighlighter {
    from {
        background: #5264AE;
    }

    to {
        width: 0;
        background: transparent;
    }
}

@-moz-keyframes inputHighlighter {
    from {
        background: #5264AE;
    }

    to {
        width: 0;
        background: transparent;
    }
}

@keyframes inputHighlighter {
    from {
        background: #5264AE;
    }

    to {
        width: 0;
        background: transparent;
    }
}

.color-avibra-green {
    color: #27BD69;
}

/* BS5: Float the help-popup ? icon INSIDE the text box at the right edge.
   PROD placed it to the left of the field (left: -1.75rem) which crowded
   the floating label and looked like a separate column. Pinning it inside
   the field at the right keeps it associated with the field it documents
   and frees the gutter for cleaner alignment. */
.has-float-label .help-popup,
.floating-label .help-popup {
    position: absolute;
    left: auto;
    right: 0.5rem;
    top: 50%;
    transform: translateY(-50%);
    z-index: 4;
    font-size: 100%;
    cursor: default;
    line-height: normal;
    padding: 0;
    transition: none;
}

/* When the field is wrapped in an input-group (Effective Date has a calendar
   button on the right), pin the ? to the LEFT of that addon with a little
   extra breathing room so it doesn't crowd the calendar icon. */
.has-float-label:has(.input-group) .help-popup,
.floating-label:has(.input-group) .help-popup {
    right: 4.25rem;
}

/* Reserve space inside the input so the ? icon does not overlap typed text. */
.has-float-label .form-control:has(~ .help-popup),
.has-float-label .form-select:has(~ .help-popup),
.floating-label .form-control:has(~ .help-popup),
.floating-label .form-select:has(~ .help-popup) {
    padding-right: 2rem;
}

.help-popup::after {
    display: none;
}

.help-popup .fa-question-circle {
    color: #999;
    cursor: pointer;
    margin: 0;
}

.help-popup .popover {
    width: 250px;
}


#effective-float {
    left: 27px;
}

.privacybox {
    background-color: white;
    color: black;
    border: 3px solid black;
}
/* BS5: Suppress red exclamation / green check SVGs that BS5 paints on
   is-invalid / is-valid form controls. PROD layout never showed these icons —
   the field border colour + the bold red floating-label-style error message
   already convey state. The SVGs crowd the right side of every field and on
   empty optional fields produce a misleading green check. */
.form-control.is-invalid,
.form-select.is-invalid,
.form-control.is-valid,
.form-select.is-valid {
    background-image: none !important;
    padding-right: 0.75rem !important;
}

/* Don't tint the calendar / currency / etc. input-group addon red when the
   sibling input is invalid — keep the addon neutral. */
.input-group:has(> .is-invalid) .input-group-text,
.input-group:has(> .is-invalid) .btn {
    background-color: var(--bs-tertiary-bg);
    border-color: var(--bs-border-color);
    color: var(--bs-body-color);
}

/* Render every validation error span as a floating-label-styled notch above
   its field — small bold red text at top-left, regardless of whether the
   field is a plain text input, an input-group (Effective Date), or a
   floating-label select (State). Visual consistency is intentionally
   stronger here than on PROD, which mixes block-level large-text errors
   with floating-label-style errors and looks misaligned when the whole
   form fails.
   Bug 103032: z-index must beat BS5's `.input-group > .form-control.is-invalid`
   (z:4) and `.input-group > .form-control:focus` (z:5). With z:4, jQuery
   validate's error span for EffectiveDate (placed BEFORE .input-group in
   DOM) tied with the input's z:4 — same z-index, later DOM wins, so the
   input painted over the label and clipped "Effective Date required" to
   half-visible. Plain inputs (Email, FirstName, etc.) weren't affected
   because their input has z:auto. Use z:6 to clear both BS5 levels. */
.has-float-label > span.error,
.floating-label > span.error {
    position: absolute;
    top: -.5em;
    left: 12px;
    font-size: 75%;
    font-weight: 700;
    z-index: 6;
    line-height: 1;
    padding: 0 4px;
    background: var(--bs-body-bg, #fff);
    color: #cb262b;
    white-space: nowrap;
}
