/* Propensio Stylesheet */
/* Designed to be used in tandem with bootstrap 5.3+ */
/* Author  - PropensioDev - Finlay Gratton */
/* Version - 1.0.0 */

/* Site Specific CSS */
html *
{
    font-family: 'Montserrat', sans-serif;
    scroll-behavior: smooth;
}

/* Navbar Styles */
.navbar-nav
{
    font-family: 'Montserrat' !important;
}

.nav-link
{
    color: #e9e9e9 !important;
}

/* Company logo pinned top-left */
.logo {
    position: fixed;
    top: 10px;
    left: 10px;
    width: 300px;
    height: 84px;
    object-fit: contain;
    z-index: 1000;
}

/* Navbar Gradient Background */
.grad 
{
    background-color: #343C5A; /* Just in case browser doesn't support gradients */
    background-image: linear-gradient(174deg, #343C5A, #343C5A, #343C5A, #2AB8C3);
}

/* Footer Responsiveness */
/* Footer layout: keep columns on one row between 992px-1399px */
footer .footer-columns img,
footer > .container > .row:first-of-type img
{
    max-width: 100%;
    height: auto;
}

.legal-header
{
    color: #343C5A;
    padding-top: 3rem;
}

.legal-subheader
{
    color: #2AB8C3 !important;
    padding-top: 1.5rem;
}

.legal-li
{
    color: inherit;
}

.legal-li::marker
{
    color: #2AB8C3;
}

.legal-a
{
    color: #439D7F;
}

/* Footer brand sizing and centering */
.footer-logo-img
{
    display: block;
    margin: 0 auto;
    width: clamp(140px, 60%, 220px);
    height: auto;
}

@media (min-width: 576px) and (max-width: 991.98px)
{
    /* Slightly larger footer logo on small screens */
    .footer-logo-img
    {
        width: clamp(170px, 70%, 260px);
    }
}

.footer-logo-text
{
    margin: 0;
}

/* Force 2x2 grid on very small viewports */
@media (max-width: 575.98px)
{
    footer .footer-columns,
    footer > .container > .row:first-of-type
    {
        --footer-gap: 1rem;
        gap: var(--footer-gap) !important;
        --bs-gutter-x: 0.5rem;
        --bs-gutter-y: 1rem;
		justify-content: flex-start;
		padding-left: var(--bs-gutter-x);
		padding-right: var(--bs-gutter-x);
    }

    /* Override Bootstrap's row-cols-1 100% width to force 2 columns */
    footer .footer-columns > .col,
    footer .footer-columns.row-cols-1 > .col,
    footer .footer-columns > [class*="col-"],
    footer .footer-columns.row-cols-1 > [class*="col-"],
    footer > .container > .row:first-of-type > .col,
    footer > .container > .row:first-of-type.row-cols-1 > .col,
    footer > .container > .row:first-of-type > [class*="col-"],
    footer > .container > .row:first-of-type.row-cols-1 > [class*="col-"]
    {
        flex: 0 0 calc(50% - var(--bs-gutter-x)) !important;
        width: calc(50% - var(--bs-gutter-x)) !important;
        max-width: calc(50% - var(--bs-gutter-x)) !important;
    }

    /* Keep wrapped odd column left-aligned on its own row */
    footer .footer-columns > .col:last-child:nth-child(odd),
    footer > .container > .row:first-of-type > .col:last-child:nth-child(odd)
    {
        margin-left: var(--bs-gutter-x);
        margin-right: auto;
    }
}

/* Medium screens: keep wrapped footer column aligned under the first column */
@media (min-width: 576px) and (max-width: 991.98px)
{
    footer .footer-columns,
    footer > .container > .row:first-of-type
    {
        --bs-gutter-x: 0.75rem;
        padding-left: var(--bs-gutter-x);
        padding-right: var(--bs-gutter-x);
        justify-content: flex-start;
    }

    footer .footer-columns > .col:last-child:nth-child(odd),
    footer > .container > .row:first-of-type > .col:last-child:nth-child(odd)
    {
        margin-left: var(--bs-gutter-x);
        margin-right: auto;
    }
}

@media (min-width: 992px) and (max-width: 1399px)
{
    footer .footer-columns,
    footer > .container > .row:first-of-type
    {
        --footer-gap: 1rem;
        gap: var(--footer-gap) !important;
        --bs-gutter-x: 1rem; /* slightly tighter gutters than default g-4 */
    }

    footer .footer-columns > .col,
    footer > .container > .row:first-of-type > .col,
    footer .footer-columns.row-cols-1 > .col,
    footer > .container > .row:first-of-type.row-cols-1 > .col,
    footer .footer-columns > [class*="col-"],
    footer > .container > .row:first-of-type > [class*="col-"],
    footer .footer-columns.row-cols-1 > [class*="col-"],
    footer > .container > .row:first-of-type.row-cols-1 > [class*="col-"]
    {
        flex: 0 0 calc((100% - (3 * var(--footer-gap))) / 4);
        max-width: calc((100% - (3 * var(--footer-gap))) / 4);
    }
}

/* Radio Buttons */
.radio-container
{
    display: block;
    position: relative;
    padding-left: 40px;
    margin-bottom: 12px;
    cursor: pointer;
    font-size: 16px;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.radio-container input
{
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
}

.radio-container .checkmark
{
    position: absolute;
    top: 0;
    left: 0;
    height: 22px;
    width: 22px;
    background-color: #343C5A;
    border-radius: 50%;
    box-shadow: inset 0 0 0 6px #FFFFFF;
    transition: background-color 0.2s ease, box-shadow 0.2s ease, transform 0.1s ease;
}

.radio-container:hover .checkmark
{
    transform: scale(1.03);
}

.radio-container input:checked ~ .checkmark
{
    background-color: #2AB8C3;
    box-shadow: inset 0 0 0 4px #FFFFFF;
}

.radio-container input:focus-visible ~ .checkmark
{
    outline: 3px solid #2AB8C3;
    outline-offset: 1px;
}

/* Lettered multiple-choice question groups (e.g. "How were you made aware of X" A-E) */
.choice-group
{
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.choice-group .btn-pp-choice
{
    display: flex;
    align-items: flex-start;
    width: 100%;
    background-color: #FFFFFF !important;
    color: #343C5A !important;
    border: 1px solid #d3d3d3 !important;
    text-align: left;
    padding: 10px 16px;
    border-radius: 10px !important;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.choice-group .btn-pp-choice:hover
{
    background-color: #eafbfc !important;
    border-color: #2AB8C3 !important;
    color: #343C5A !important;
}

.choice-group .btn-pp-choice:focus-visible
{
    outline: 3px solid #2AB8C3;
    outline-offset: 1px;
}

.choice-group .btn-pp-choice.active
{
    background-color: #2AB8C3 !important;
    color: #FFFFFF !important;
    border-color: #2AB8C3 !important;
}

.choice-group .choice-letter
{
    font-weight: 700;
    margin-right: 8px;
    flex-shrink: 0;
}

/* Range slider with floating value */
.range-wrapper
{
    position: relative;
    padding-top: 12px;
}

.range-wrapper .form-range
{
    margin-bottom: 18px;
    appearance: none;
    width: 100%;
    height: 12px;
    background: transparent;
}

.range-wrapper .form-range::-webkit-slider-runnable-track
{
    height: 12px;
    border-radius: 999px;
    background: linear-gradient(
        to right,
        #2AB8C3 0%,
        #2AB8C3 var(--fill, 50%),
        #d3d3d3 var(--fill, 50%),
        #d3d3d3 100%
    );
}

.range-wrapper .form-range::-moz-range-track
{
    height: 12px;
    border-radius: 999px;
    background: linear-gradient(
        to right,
        #2AB8C3 0%,
        #2AB8C3 var(--fill, 50%),
        #d3d3d3 var(--fill, 50%),
        #d3d3d3 100%
    );
}

.range-wrapper .form-range::-webkit-slider-thumb
{
    background-color: #2AB8C3;
    border: 1px solid #343C5A;
    appearance: none;
    height: 24px;
    width: 24px;
    border-radius: 50%;
    margin-top: -6px; /* center thumb on 12px track */
}

.range-wrapper .form-range::-moz-range-thumb
{
    background-color: #343C5A;
    border: 1px solid #343C5A;
    height: 24px;
    width: 24px;
    border-radius: 50%;
}

.range-wrapper .form-range:active::-webkit-slider-thumb,
.range-wrapper .form-range:focus-visible::-webkit-slider-thumb
{
    background-color: #2AB8C3;
    border-color: #343C5A;
}

.range-wrapper .form-range:active::-moz-range-thumb,
.range-wrapper .form-range:focus-visible::-moz-range-thumb
{
    background-color: #2AB8C3;
    border-color: #343C5A;
}

.range-value
{
    position: absolute;
    top: -10px;
    left: 0;
    transform: translateX(-50%);
    background-color: #2AB8C3;
    color: #FFFFFF;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 0.85rem;
    line-height: 1;
    pointer-events: none;
    white-space: nowrap;
    opacity: 1;
    visibility: visible;
    transition: opacity 0.15s ease, visibility 0.15s ease;
}

.range-scale
{
    display: flex;
    justify-content: space-between;
    font-size: 0.9rem;
    color: #5E5E5E;
    margin-top: -6px;
}

/* Bootstrap Overrides - All Changes to Bootstrap are prefixed with 'pp' */
/* Alerts */
.pp-alert-primary
{
    background-color: #343C5A !important;
    color: #FFFFFF !important;
    border-color: #778ace !important;
}

.pp-alert-secondary
{
    background-color: #2AB8C3 !important;
    color: #FFFFFF !important;
    border-color: #32e3f0 !important;
}

.pp-alert-success
{
    background-color: #439D7F !important;
    color: #FFFFFF !important;
    border-color: #58c79d !important;
}

.pp-alert-info
{
    background-color: #5E5E5E !important;
    color: #FFFFFF !important;
    border-color: #acacac !important;
}

.pp-alert-warning
{
    background-color: #FAD156 !important;
    color: #524a03 !important;
    border-color: #ffed7c !important;
}

.pp-alert-danger
{
    background-color: #e73a34 !important;
    color: #FFFFFF !important; 
    border-color: #ff6865 !important;
}

/* Badges */
.text-bg-pp-primary
{
    background-color: #343C5A !important;
    color: #FFFFFF !important;
}
.text-bg-pp-secondary
{
    background-color: #2AB8C3 !important;
    color: #FFFFFF !important;
}
.text-bg-pp-success
{
    background-color: #439D7F !important;
    color: #FFFFFF !important;
}
.text-bg-pp-info
{
    background-color: #5E5E5E !important;
    color: #FFFFFF !important;
}
.text-bg-pp-warning
{
    background-color: #FAD156 !important;
    color: #524a03 !important;
}
.text-bg-pp-danger
{
    background-color: #e73a34 !important;
    color: #FFFFFF !important;
}

/* Buttons */
.btn-pp-primary
{
    background-color: #343C5A !important;
    color: #FFFFFF !important;
    border-color: #778ace !important;
}
.btn-pp-primary:hover
{
    background-color: #4e5a86 !important;
    color: #FFFFFF !important;
    border-color: #5c6fae !important;
}
.btn-pp-primary:active
{
    background-color: #2AB8C3 !important;
    color: #FFFFFF !important;
    border-color: #2AB8C3 !important;
}

.btn-pp-primary.active
{
    background-color: #2AB8C3 !important;
    color: #FFFFFF !important;
    border-color: #2AB8C3 !important;
}

.btn-pp-secondary
{
    background-color: #2AB8C3 !important;
    color: #FFFFFF !important;
    border-color: #32e3f0 !important;
}
.btn-pp-secondary:hover
{
    background-color: #57f4ff !important;
    color: #FFFFFF !important;
    border-color: #96f8ff !important;
}
.btn-pp-secondary:active
{
    background-color: #343C5A !important;
    color: #FFFFFF !important;
    border-color: #343C5A !important;
}

.btn-pp-success
{
    background-color: #439D7F !important;
    color: #FFFFFF !important;
    border-color: #58c79d !important;
}
.btn-pp-success:hover
{
    background-color: #59d3aa !important;
    color: #FFFFFF !important;
    border-color: #98fdd8 !important;
}
.btn-pp-success:active
{
    background-color: #E76D34 !important;
    color: #FFFFFF !important;
    border-color: #E76D34 !important;
}

.btn-pp-info
{
    background-color: #5E5E5E !important;
    color: #FFFFFF !important;
    border-color: #acacac !important;
}
.btn-pp-info:hover
{
    background-color: #7f7f7f !important;
    color: #FFFFFF !important;
    border-color: #d1d1d1 !important;
}

.btn-pp-warning
{
    background-color: #FAD156 !important;
    color: #524a03 !important;
    border-color: #ffed7c !important;
}
.btn-pp-warning:hover
{
    background-color: #ffed7c !important;
    color: #524a03 !important;
    border-color: #fff493 !important;
}

.btn-pp-danger
{
    background-color: #e73a34 !important;
    color: #610d0d !important;
    border-color: #ff6865 !important;
}
.btn-pp-danger:hover
{
    background-color: #ff6865 !important;
    color: #610d0d !important;
    border-color: #ff8a87 !important;
}

/* Outline Buttons */

.btn-outline-pp-primary
{
    background-color: transparent !important;
    color: #343C5A !important;
    border-color: #778ace !important;
}
.btn-outline-pp-primary:hover
{
    background-color: #343C5A !important;
    color: #FFFFFF !important;
    border-color: #5c6fae !important;
}

.btn-outline-pp-secondary
{
    background-color: transparent !important;
    color: #2AB8C3 !important;
    border-color: #32e3f0 !important;
}
.btn-outline-pp-secondary:hover
{
    background-color: #2AB8C3 !important;
    color: #FFFFFF !important;
    border-color: #96f8ff !important;
}

.btn-outline-pp-success
{
    background-color: transparent !important;
    color: #439D7F !important;
    border-color: #58c79d !important;
}
.btn-outline-pp-success:hover
{
    background-color: #439D7F !important;
    color: #FFFFFF !important;
    border-color: #98fdd8 !important;
}

.btn-outline-pp-info
{
    background-color: transparent !important;
    color: #5E5E5E !important;
    border-color: #acacac !important;
}
.btn-outline-pp-info:hover {
    background-color: #5E5E5E !important;
    color: #FFFFFF !important;
    border-color: #d1d1d1 !important;
}

.btn-outline-pp-danger
{
    background-color: transparent !important;
    color: #e73a34 !important;
    border-color: #ff6865 !important;
}
.btn-outline-pp-danger:hover
{
    background-color: #e73a34 !important;
    color: #610d0d !important;
    border-color: #ff8a87 !important;
}

.btn-outline-pp-warning
{
    background-color: transparent !important;
    color: #FAD156 !important;
    border-color: #ffed7c !important;
}
.btn-outline-pp-warning:hover
{
    background-color: #FAD156 !important;
    color: #524a03 !important;
    border-color: #fff493 !important;
}

/* Background Colours - should override anywhere that uses bg-primary, etc. */
.bg-pp-primary
{
    background-color: #343C5A !important;
}

.bg-pp-secondary
{
    background-color: #2AB8C3 !important;
}

.bg-pp-success
{
    background-color: #439D7F !important;
}

.bg-pp-info
{
    background-color: #5E5E5E !important;
}

.bg-pp-warning
{
    background-color: #FAD156 !important;
}

.bg-pp-danger
{
    background-color: #e73a34 !important;
}

/* List Active Colour */
.list-pp-active
{
    background-color: #343C5A !important;
    color: #FFFFFF !important;
}

.list-pp-active-secondary
{
    background-color: #2AB8C3 !important;
}

/* Pagination - include 'pagination' in class list to apply bootstrap formatting */
.pp-pagination
{
    --bs-pagination-color: #E76D34 !important;
    --bs-pagination-bg: #FFFFFF !important;
    --bs-pagination-border-color: #343C5A !important;
    --bs-pagination-hover-color: #FFFFFF !important;
    --bs-pagination-hover-bg: #E76D34 !important;
    --bs-pagination-hover-border-color: #343C5A !important;
    --bs-pagination-active-color: #FFFFFF !important;
    --bs-pagination-active-bg: #E76D34 !important;
    --bs-pagination-active-border-color: #343C5A !important;
}

.pp-page-item
{
    color: #E76D34 !important;
}

.pp-page-item-active .page-link
{
    background-color: #E76D34 !important;
    border-color: #343C5A !important;
    color: #FFFFFF !important;
}

/* Progress Bars - include 'progress' in class list to apply bootstrap formatting */
.pp-progress .pp-progress-bar
{
    background-color: #343C5A !important;
}

.pp-progress-secondary .pp-progress-bar-secondary
{
    background-color: #2AB8C3 !important;
}