* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    font-family: Roboto;
    font-weight: normal;
    position: relative;
    min-height: 100%;
}

body {
    margin-bottom: 6.2rem;
    font-size: calc(15px + 0.390625vw);
    line-height: normal;
}

header {
    padding-bottom: 1.5rem;
}

.menu .row {
    margin: 0;
}

h1 {
    font-size: 1.8rem;
}

h2 {
    font-size: 1.5rem;
}

h3 {
    font-size: 1.2rem;
}

h4 {
    font-size: 0.9rem;
}

h5 {
    font-size: 0.6rem;
}

.navbar-brand {
    display: contents !important
}

    .navbar-brand img, .navbar-brand h1 {
        float: left;
    }

.navbar-light .navbar-nav .nav-link {
    color: #000 !important;
    padding-right: 0.5rem;
    padding-left: 0.5rem;
    text-align: center;
    font-size: 1.25rem;
}

    .navbar-light .navbar-nav .nav-link:hover {
        color: #fff !important;
        background-color: #000;
        font-size: 1.25rem;
    }

.header-bgrd, .menu {
    background-color: #cfe5fa;
}

    .menu h1 {
        font-size: unset;
    }

.navbar-toggler:focus {
    box-shadow: 0 0 0 0 !important
}
/*background: rgb(155,200,221); background: linear-gradient(90deg, rgba(155,200,221,1) 0%, rgba(188,217,231,1) 50%, rgba(224,237,245,1) 100%); color: #000000 }*/
.header-text, .header-img {
    display: grid;
}

.logo {
    padding: 1rem
}

.logo-sm {
    padding: 0.5rem
}

.border-top {
    border-top: 1px solid #e5e5e5;
}

.border-bottom {
    border-bottom: 1px solid #e5e5e5;
}

.box-shadow {
    box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05);
}

.footer {
    position: absolute;
    bottom: 0;
    width: 100%;
    padding: 1.25rem 4rem;
}

.field-validation-valid {
    display: none !important
}

.result .alternate-color > div:nth-of-type(odd) {
    background-color: #f2f4fffd;
}

.validation-summary-valid {
    display: none
}

.alert .btn-close {
    position: absolute;
    top: 0;
    right: 0;
    padding: 0.6rem
}

.input-validation-error {
    background-color: #fceeee
}


/*div:has(>.for-validation) span {  display: none }
div:has(>.input-validation-error) span { display: block; }
div:has(>.input-validation-error) span:after { content: "!"; position: absolute; top: 0.5rem; right: 0.5rem; color: #ff0000; font-weight: bold }
*/
::placeholder {
    color: initial !important;
}

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
    transition: background-color 5000s;
}

.accordion-body li {
    padding-bottom: 0.7rem
}

#cb-cookie-banner {
    width: 100%;
    z-index: 999;
    border-radius: 0;
    display: none;
    background-color: #000;
    color: #fff;
    font-size: 1.2rem
}

.text-colour-red {
    color: #ff0000
}
/* Extra small devices (phones, 320px and down) */
@media only screen and (max-width: 320px) {
    body {
        font-size: 16px;
    }

    .header-page {
        display: none;
    }

    .logo-sm {
        display: block
    }

    .spinner-border {
        margin: auto
    }
}
/* Small devices (portrait tablets and large phones, 320px and up) */
@media only screen and (min-width: 320px) {
    body {
        font-size: 17px;
    }

    .header-page {
        display: none;
    }

    .logo-sm {
        display: block
    }

    .spinner-border {
        margin: auto
    }
}
/* Medium devices (landscape tablets, 768px and up) */
@media only screen and (min-width: 768px) {
    body {
        font-size: 18px;
    }

    .header-page {
        display: block;
    }

    .logo-sm {
        display: none
    }

    .spinner-border {
        margin: unset
    }
}
/* Large devices (laptops/desktops, 1024px and up) */
@media only screen and (min-width: 1024px) {
    body {
        font-size: 19px;
    }

    .border-radius-start, .border-radius-end {
        border-radius: 0;
    }

    .border-radius-start {
        border-left: none
    }
}
/* Extra large devices (large laptops and desktops, 1280px and up) */
@media only screen and (min-width: 1280px) {
    body {
        font-size: 20px;
    }
}

@media only screen and (min-width: 1536px) {
    body {
        font-size: 21px;
    }
}

@media only screen and (min-width: 1920px) {
    body {
        font-size: 23px;
    }
}

@media only screen and (min-width: 2560px) {
    body {
        font-size: 25px;
    }
}
