﻿﻿ /* TODO: CSS is all over the place at the moment, we need a better system when time allows */
/* #region Variables */
:root {
    --drop-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.12);
    --ochre: #F58220;
    --ochre-20: #F5822033;
    --outline: #808080;
    --outline-10: #8080801A;
    --outline-30: #8080804D;
    --outline-80: #808080CC;
    --dark: #F1F2F9;
    --light: #FFF;
    --card-border-radius: 8px;
    --card-padding: 16px;
    --success: #007A04;
    --success-30: #007A044D;
    --error: #DE2C2F;
    --error-30: #DE2C2F4D;
    --text-disabled: #3d4465;
    --text-dark: #000;
    --text-light: #7D7D7D;
    --top-sticky: 8rem; /* Needs to see how this will look like on Parks public portal */
}

/* #endregion */

/* #region Page Layout */

html, body {
    margin: 0;
}

body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.content {
    flex: 1;
}

ul {
    list-style-type: none;
    padding: 0;
    margin: 0;
}

a {
    color: white;
    text-decoration: none;
    transition: color 100ms ease-in-out;
    -webkit-transition: color 100ms ease-in-out;
    -o-transition: color 100ms ease-in-out;
}

    a:hover {
        color: #F58220;
    }

/* #endregion */

/* #region Header & Footer */

.unv-header li:hover > a,
.unv-footer li:hover > a,
.unv-header__hamburger-menu li:hover > a {
    color: #F58220;
}

.unv-header {
    display: flex;
    justify-content: space-between;
    padding: 12px 48px;
    position: relative;
    border-bottom: 1px solid rgba(0,0,0,0.1);
    z-index: 3;
}

    .unv-header::after {
        content: "";
        position: absolute;
        top: 100%;
        left: 0;
        width: 100%;
        height: 5px; /* shadow size */
        background: linear-gradient(to bottom, rgba(0,0,0,0.1), transparent);
        border-radius: inherit;
        pointer-events: none;
    }

    .unv-header__brand-container {
        display: flex;
    }

    .unv-header__brand a {
        display: block;
        width: 100%
    }

    .unv-header__hamburger-container {
        align-items: center;
        padding: 0 12px;
        height: 100%;
        display: none;
        background-color: #102B45;
    }

    .unv-header__hamburger {
        position: relative;
        display: block;
        width: 26px;
        height: 22px;
        vertical-align: middle;
        cursor: pointer;
        -webkit-transition: all 0.3s;
        -moz-transition: all 0.3s;
        -o-transition: all 0.3s;
        transition: all 0.3s;
    }

        .unv-header__hamburger span {
            height: 2px;
            top: 10px;
            right: 0;
            background-color: white;
            width: 100%;
            display: block;
            position: absolute;
            border-radius: 2px;
            -webkit-transition: all 0.3s, opacity 0.1s;
            -moz-transition: all 0.3s, opacity 0.1s;
            -o-transition: all 0.3s, opacity 0.1s;
            transition: all 0.3s, opacity 0.1s;
        }

            .unv-header__hamburger span:first-child {
                top: 0;
            }

            .unv-header__hamburger span:last-child {
                top: 20px;
            }

        .unv-header__hamburger[data-active=true] span:nth-child(2):not(:last-child) {
            opacity: 0;
            -webkit-transform: translateX(-100%);
            -moz-transform: translateX(-100%);
            -ms-transform: translateX(-100%);
            -o-transform: translateX(-100%);
            transform: translateX(-100%);
        }

        .unv-header__hamburger[data-active=true] span:first-child {
            -webkit-transform: rotate(-45deg);
            -moz-transform: rotate(-45deg);
            -ms-transform: rotate(-45deg);
            -o-transform: rotate(-45deg);
            transform: rotate(-45deg);
            top: 10px;
            right: 0;
        }

        .unv-header__hamburger[data-active=true] span:last-child {
            -webkit-transform: rotate(45deg);
            -moz-transform: rotate(45deg);
            -ms-transform: rotate(45deg);
            -o-transform: rotate(45deg);
            transform: rotate(45deg);
            top: 10px;
            right: 0;
        }

.unv-header__hamburger-menu.js-header-hamburger {
    opacity: 0;
    pointer-events: none;
    position: absolute;
    top: 56px;
    width: 100%;
    min-height: calc(100vh - 56px) !important;
    max-height: calc(100vh - 56px);
    overflow-y: scroll;
    background-color: var(--cmca-text);
    z-index: 999;
    transition: opacity 100ms ease-in-out;
    -webkit-transition: opacity 100ms ease-in-out;
    -o-transition: opacity 100ms ease-in-out;
}

        .unv-header__hamburger-menu[data-active=true] {
            opacity: 1;
            pointer-events: all;
        }

        .unv-header__hamburger-menu .unv-header__navigation > ul {
            display: block !important;
            height: unset !important;
        }

        .unv-header__hamburger-menu .unv-header__navigation li {
            border-top: 1.5px solid #102B45;
            padding: 2rem;
            height: unset !important;
            display: flex;
            justify-content: space-between;
            padding: 0;
            align-items: center;
            transition: background-color 100ms ease-in-out;
            -webkit-transition: background-color 100ms ease-in-out;
            -o-transition: background-color 100ms ease-in-out;
        }

            .unv-header__hamburger-menu .unv-header__navigation li:hover {
                background-color: #f5822017;
            }

            .unv-header__hamburger-menu .unv-header__navigation li::after {
                content: "";
                display: inline-block;
                width: 8px;
                height: 8px;
                border-right: 2px solid black;
                border-bottom: 2px solid black;
                transform: rotate(-45deg);
                margin: 4px;
                margin-right: 2rem;
            }

            .unv-header__hamburger-menu .unv-header__navigation li:last-child {
                border-bottom: 1.5px solid #102B45;
            }

        .unv-header__hamburger-menu .unv-header__navigation ul a {
            width: 100%;
            padding: 2rem;
            place-items: start;
        }

    .unv-header__navigation ul,
    .unv-footer__navigation ul,
    .unv-footer__copyright-navigation ul {
        display: flex;
        align-items: center;
        column-gap: 2rem;
        height: 100%;
    }

    .unv-header__navigation li,
    .unv-footer__navigation li,
    .unv-footer__copyright-navigation li {
        height: 100%;
        cursor: pointer;
    }

    .unv-header__navigation a,
    .unv-footer__navigation a,
    .unv-footer__copyright-navigation a {
        color: #131313;
        font-weight: bold;
        font-size: 16px;
        height: 100%;
        padding: 0px 2rem;
        display: grid;
        place-items: center;
    }

    .unv-header__user-bar {
        display: flex;
        align-items: center;
        column-gap: 12px;
    }

    .header-buttons {
        display: flex;
        gap: 24px;
        justify-content: center;
        align-items: center;
    }

        .header-buttons .unv-button {
            width: 8em;
            padding-top: 12px;
            padding-bottom: 12px;
        }

@media (max-width: 1800px) {
    .unv-header__navigation > ul {
            column-gap: 0;
        }
    }

    @media (max-width: 1300px) {
        .unv-header__navigation ul a {
            padding: 0px 1rem;
        }
    }

    @media (min-width: 1200px) {
        .unv-header__hamburger-menu {
            display: none !important;
        }
    }

    @media (max-width: 1200px) {
        .unv-header {
            padding: 12px 48px;
        }

        .unv-header__navigation > ul {
            display: none;
        }

        .unv-header__hamburger-container {
            display: flex;
        }
    }

    @media (max-width: 700px) {
        .unv-header__user-bar > .unv-button {
            display: none;
        }
    }

    @media (max-width: 425px) {
        .unv-header__user-bar .unv-button {
            display: none;
        }
    }

    .unv-footer {
        background-image: url('/images/footer-bg-2.png');
        background-position: center center;
        background-repeat: no-repeat;
        background-size: cover;
        font-family: "Roboto";
        color: white;
        padding: 64px 64px 32px 64px;
        font-size: 14px;
        display: grid;
        justify-items: center;
    }

        .unv-footer h1 {
            font-size: 18px;
            font-weight: bold;
        }

        .unv-footer a {
            display: block;
            padding: 0;
            font-weight: normal;
        }

    .unv-footer__container {
        display: grid;
        justify-items: center;
    }

    .unv-footer__main {
        display: flex;
        column-gap: 100px;
        padding: 0px 75px;
        padding-bottom: 64px;
        justify-content: center;
        position: relative;
    }

    .unv-footer__details {
        border-right: 1.5px solid white;
    }

        .unv-footer__details h1 {
            margin: 1rem 0px;
        }

    .unv-footer__brand {
        border-bottom: 1.5px solid white;
        padding-right: 75px;
        padding-bottom: 40px;
    }

        .unv-footer__brand img {
            height: 100%;
            width: 200px;
        }

    .unv-footer__contact-details li {
        display: grid;
        grid-template-columns: 35px auto;
        align-items: center;
        margin: 1rem 0px;
    }

    .unv-footer__contact-details i {
        font-size: 20px;
    }


    .unv-footer__contact-socials {
        display: flex;
        column-gap: 1rem;
        margin-top: 2rem !important;
    }

    .unv-footer__circle-icon {
        background: transparent;
        color: white;
        border-radius: 50%;
        border: 1px solid white;
        width: 35px;
        height: 35px;
        display: grid !important;
        align-items: center;
        justify-content: center;
        font-size: 18px;
        transition: color 100ms ease-in-out, border-color 100ms ease-in-out;
        -webkit-transition: color 100ms ease-in-out, border-color 100ms ease-in-out;
        -o-transition: color 100ms ease-in-out, border-color 100ms ease-in-out;
    }

        .unv-footer__circle-icon:hover {
            border-color: #F58220;
            color: #F58220;
        }

    .unv-footer__scroll-top {
        position: absolute;
        right: 0;
        bottom: 0;
        margin-bottom: 2rem;
    }

    .unv-footer__navigation {
        display: flex;
        column-gap: 104px;
    }

        .unv-footer__navigation h1 {
            margin-bottom: 1.5rem;
        }

        .unv-footer__navigation ul {
            display: block;
            height: unset;
        }

        .unv-footer__navigation a,
        .unv-footer__copyright-navigation a {
            color: white;
        }

        .unv-footer__navigation li {
            padding: 6px 0px;
        }

    .unv-footer__copyright {
        display: flex;
        border-top: 1.5px solid white;
        padding-top: 36px;
        justify-content: space-between;
        width: 100%;
    }

    .unv-footer__copyright-navigation ul {
        column-gap: 0px;
    }

    .unv-footer__copyright-navigation a {
        font-weight: bold;
        text-transform: uppercase;
        padding: 0px 3rem;
    }

    .unv-footer__copyright-navigation li:not(:last-child) {
        border-right: 1.5px solid white;
    }

    .unv-footer__copyright-navigation li:first-child > a {
        padding-left: 0px;
    }

    .unv-footer__copyright-navigation li:last-child > a {
        padding-right: 0px;
    }


    @media (max-width: 1650px) {
        .unv-footer__main {
            column-gap: 50px;
        }

        .unv-footer__navigation {
            column-gap: 56px;
        }
    }

    @media (max-width: 1350px) {
        .unv-footer__main {
            padding-left: 0;
            padding-right: 0;
        }
    }

    @media (max-width: 1200px) {
        .unv-footer {
            padding: 32px;
        }

        .unv-footer__container {
            width: 100%;
            display: block;
        }

        .unv-footer__main {
            width: 100%;
            flex-direction: column;
            row-gap: 2rem;
            padding-bottom: 2rem;
        }

        .unv-footer__details {
            display: grid;
            grid-template-rows: auto auto;
            grid-template-columns: 200px auto;
            align-items: start;
            border-right: none;
            border-bottom: 1.5px solid white;
            column-gap: 2rem;
            row-gap: 1.5rem;
            padding-bottom: 2rem;
        }

            .unv-footer__details > h1 {
                display: none;
            }

        .unv-footer__brand {
            border-bottom: none;
            padding: 0;
            grid-row: 1;
            grid-column: 1;
        }

        .unv-footer__contact-details {
            display: flex;
            column-gap: 2rem;
            grid-row: 2;
            grid-column: 1 / span 2;
        }

            .unv-footer__contact-details li {
                margin: 0;
            }

        .unv-footer__contact-socials {
            grid-row: 1;
            grid-column: 2;
            margin: 0 !important;
            justify-content: flex-end;
        }

        .unv-footer__navigation {
            display: grid;
            grid-template-columns: auto auto auto auto;
            justify-content: space-between;
            column-gap: 6px;
        }
    }

    @media (max-width: 900px) {
        .unv-footer__copyright {
            flex-direction: column;
            align-items: center;
            row-gap: 1rem;
            text-align: center;
        }

        .unv-footer__contact-details {
            justify-content: space-between;
        }
    }

    @media (max-width: 700px) {
        .unv-footer__navigation {
            grid-template-columns: auto auto;
            row-gap: 4rem;
            padding-bottom: 2rem;
        }

        .unv-footer__contact-details {
            flex-direction: column;
            row-gap: 1rem;
        }

        .unv-footer__contact-socials {
            grid-row: 1 / span 2;
            flex-direction: column;
            align-items: flex-end;
            justify-content: space-between;
            height: 100%;
        }
    }

    @media (max-width: 450px) {
        .unv-footer__main,
        .unv-footer__navigation {
            padding-bottom: 0;
        }

        .unv-footer__details {
            grid-template-columns: auto;
            grid-template-rows: auto auto auto;
            justify-items: center;
        }

        .unv-footer__brand,
        .unv-footer__contact-details,
        .unv-footer__contact-socials {
            grid-column: 1;
        }

        .unv-footer__contact-socials {
            grid-row: 3;
            flex-direction: row;
            justify-content: start;
        }

        .unv-footer__navigation {
            grid-template-columns: 1fr;
            justify-items: center;
            text-align: center;
            row-gap: 0;
        }

        .unv-footer__navigation-section {
            margin: 2rem 0px;
        }

            .unv-footer__navigation-section.double-section {
                margin: 0;
            }

            .unv-footer__navigation-section.no-title {
                margin: 0 0 2rem 0;
            }

                .unv-footer__navigation-section.no-title > h1 {
                    display: none;
                }
    }

    /* #endregion */

    /* #region Components */

    .unv-alert {
        border: 1.5px solid black;
        border-radius: var(--card-border-radius);
        padding: 0.5rem 1rem;
        margin: 1rem 0;
        display: flex;
        align-items: center;
    }

        .unv-alert.success {
            border-color: var(--success);
            background-color: var(--success-30);
        }

        .unv-alert.danger {
            border-color: var(--error);
            background-color: var(--error-30);
        }

    .unv-alert__button {
        background-color: transparent;
        border: none;
        margin: 0;
        padding: 0;
        text-align: inherit;
        font: inherit;
        border-radius: 0;
        appearance: none;
        text-decoration: none;
        min-width: 44px;
        min-height: 44px;
        display: grid;
        border-radius: 6px;
        align-items: center;
        justify-content: center;
        margin-left: auto;
        transition: background-color 100ms ease-in-out;
        -webkit-transition: background-color 100ms ease-in-out;
        -o-transition: background-color 100ms ease-in-out;
    }

        .unv-alert__button:hover {
            background-color: rgba(0, 0, 0, 0.1);
        }

    .unv-button-group {
        display: flex;
        gap: 1rem;
    }

    .unv-button {
        /* Remove Default Styling */
        background-color: transparent;
        border: none;
        margin: 0;
        padding: 0;
        text-align: inherit;
        font: inherit;
        border-radius: 0;
        appearance: none;
        text-decoration: none;
        /* Custom Styling */
        padding: 0.5rem 1rem;
        text-align: center;
        font-weight: bold !important;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: background-color 100ms ease-in-out;
        -webkit-transition: background-color 100ms ease-in-out;
        -o-transition: background-color 100ms ease-in-out;
    }

        .unv-button.primary {
            background-color: #F58220;
            color: white;
        }

            .unv-button.primary:not(:disabled):hover {
                background-color: #F58220BF;
            }

        .unv-button.secondary {
            background-color: white;
            color: #102B45;
            border: solid 1.5px #102B45;
        }

            .unv-button.secondary:not(:disabled):hover {
                background-color: #102B4540;
            }


    .unv-form-group {
        position: relative;
        margin: 1rem 0;
        flex: 1;
        width: 100%;
    }

        .unv-form-group input,
        .unv-form-group select {
            width: 100%;
            height: 100%;
            padding: 10px 0.75rem;
            font-size: 1rem;
            border: 1px solid black;
            color: black;
            border-radius: 0.5rem;
            outline: none;
            background: none;
            min-height: 44px;
            max-height: 44px;
        }

            .unv-form-group input::placeholder,
            .unv-form-group select::placeholder {
                opacity: 0;
            }

            .unv-form-group input:focus,
            .unv-form-group input:not(:placeholder-shown),
            .unv-form-group select:focus,
            .unv-form-group select:not(:placeholder-shown) {
                border-color: black;
            }

            .unv-form-group input:disabled,
            .unv-form-group select:disabled {
                border: 1px solid var(--outline-30);
                color: var(--text-disabled);
            }

        .unv-form-group.floating label {
            position: absolute;
            top: 10px;
            left: 0.75rem;
            color: black;
            background: white;
            padding: 0 0.25rem;
            transition: 0.2s ease all;
            pointer-events: none;
        }

        .unv-form-group.floating input:focus + label,
        .unv-form-group.floating input:not(:placeholder-shown) + label,
        .unv-form-group.floating select:focus + label,
        .unv-form-group.floating select:not(:placeholder-shown) + label {
            top: -10px;
            left: 0.75rem;
            font-size: 0.75rem;
            color: black;
        }

        .unv-form-group input.is-invalid,
        .unv-form-group input.is-invalid + label,
        .unv-form-group select.is-invalid,
        .unv-form-group select.is-invalid + label {
            color: var(--error) !important;
            border-color: var(--error) !important;
        }

    .unv-form-group__validation {
        margin-top: 0.5rem;
        color: var(--error);
        font-size: 0.9rem;
        display: block;
    }

    .unv-divider {
        height: fit-content;
        width: 100%;
        padding: 1rem 0;
        position: relative;
    }

        .unv-divider::after {
            content: "";
            display: block;
            width: 100%;
            border-bottom: 1.5px solid var(--outline);
        }

    .unv-table {
        width: 100%;
        border-radius: 6px;
    }

        .unv-table th,
        .unv-table td {
            padding: 0.5rem 1rem;
        }

        .unv-table thead tr,
        .unv-table tbody tr:nth-child(even) {
            background-color: #80808010;
        }

        .unv-table tr th:first-child,
        .unv-table tr td:first-child {
            padding-left: 2rem;
        }

        .unv-table tr th:last-child,
        .unv-table tr td:last-child {
            padding-right: 2rem;
        }

    /*.unv-table tr button {
        justify-self: end;
        border: none !important;
        background-color: transparent !important;
    }

        .unv-table tr button:hover {
            background-color: #102B4540 !important;
        }*/

    /* #endregion */

    /* #region Content */

    .unv-content__hero-section,
    .unv-content__details-section {
        width: 100%;
        position: relative;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: start;
        color: black;
        background-color: white;
        font-family: "poppins";
        padding: 100px 17%;
    }

        .unv-content__hero-section.secondary {
            background-color: #F1F2F9;
        }

        .unv-content__hero-section > h1,
        .unv-content__hero-section > h2,
        .unv-content__hero-section > h3 {
            font-weight: bold;
            margin-bottom: 5rem;
        }

        .unv-content__hero-section > h1 {
            font-family: "lulo-one";
            font-size: 84px;
            line-height: 1.5;
            margin-bottom: 0px;
        }

        .unv-content__hero-section > h2 {
            font-size: 48px;
            text-transform: uppercase;
            color: #102B45;
        }

        .unv-content__hero-section > h3 {
            font-size: 34px;
        }

    .unv-content__hero-image {
        background-repeat: no-repeat;
        background-size: cover;
        background-position-y: bottom;
        min-height: 600px;
        text-align: center;
        color: white;
        align-items: center;
        justify-content: center;
    }

        .unv-content__hero-image::before {
            content: "";
            display: block;
            position: absolute;
            height: 100%;
            width: 100%;
            background: rgba(0, 0, 0, 0.5);
        }

        .unv-content__hero-image > * {
            z-index: 1;
        }

        .unv-content__hero-image > span {
            font-family: "Inter";
            text-transform: uppercase;
            font-size: 24px;
            letter-spacing: 6px;
            font-weight: 200;
        }

    .unv-content__details-section {
        flex-direction: row;
        column-gap: 2rem;
        padding: 50px 17%;
    }

        .unv-content__details-section .unv-content__details-col:first-child {
            width: 60%;
            flex: 1;
        }

        .unv-content__details-section .unv-content__details-col:last-child {
            width: 40%;
            position: sticky;
            top: var(--top-sticky);
        }

    .unv-backdrop {
        position: fixed;
        top: 0;
        left: 0;
        display: flex;
        justify-content: center;
        align-content: center;
        width: 100vw;
        height: 100vh;
        color: var(--ochre);
        background-color: rgba(0, 0, 0, 0.5);
        z-index: 9999;
    }

    @media (max-width: 2000px) {
        .unv-content__details-section {
            padding: 50px 10%;
        }
    }

    @media (max-width: 1750px) {
        .unv-content__details-section {
            padding: 50px 2rem;
        }
    }

    @media (max-width: 1250px) {
        .unv-content__details-section {
            flex-direction: column;
            row-gap: 1rem;
        }

        .unv-content__details-col {
            width: 100% !important;
            flex: unset !important;
            position: unset !important;
            top: unset !important;
        }
    }

    @media (max-width: 1000px) {
        .unv-content__hero-section > h1 {
            font-size: 76px;
        }
    }

    @media (max-width: 800px) {
        .unv-content__hero-section > h2 {
            font-size: 40px;
        }
    }

    @media (max-width: 750px) {
        .unv-content__hero-section > h1 {
            font-size: 64px;
        }
    }

    @media (max-width: 650px) {
        .unv-content__hero-section > h1 {
            font-size: 58px;
        }
    }

    @media (max-width: 550px) {
        .unv-content__hero-section > h1 {
            font-size: 42px;
        }
    }

    @media (max-width: 500px) {
        .unv-content__hero-section > h2 {
            font-size: 36px;
        }
    }

    @media (max-width: 450px) {
        .unv-content__hero-section > h1 {
            font-size: 36px;
        }
    }

    @media (max-width: 375px) {
        .unv-content__hero-section > h1 {
            font-size: 32px;
        }

        .unv-content__hero-section > h2 {
            font-size: 28px;
            margin-bottom: 2rem;
        }
    }

    .pulse {
        animation: pulse-animation 2s infinite;
    }

    @keyframes pulse-animation {
        0% {
            box-shadow: 0 0 0 0px rgba(0, 0, 0, 0.2);
        }

        100% {
            box-shadow: 0 0 0 15px rgba(0, 0, 0, 0);
        }
    }

    /* #endregion */

    /* #region Content */

    .unv-content {
        text-align: center;
        align-items: center;
        padding: 100px 2rem;
    }

        .unv-content.light {
            background-color: var(--light);
        }

        .unv-content.dark {
            background-color: var(--dark);
        }

        .unv-content.title {
            padding: 50px 2rem;
        }

        .unv-content.form {
            padding: 2rem 12%;
        }

        .unv-content > p {
            font-size: 24px;
            padding: 0px 20%;
        }

        .unv-content.small {
            max-width: 600px;
            margin: 0 auto;
        }

        .unv-content.light > p {
            color: var(--text-light);
        }

        .unv-content.dark > p {
            color: var(--text-dark);
        }

    @media (max-width: 2000px) {
        .unv-content > p {
            padding: 0 10%;
        }
    }

    @media (max-width: 1250px) {
        .unv-content > h1 > br {
            display: none;
        }
    }

    @media (max-width: 800px) {
        .unv-content > p {
            font-size: 20px;
        }
    }

    @media (max-width: 500px) {
        .unv-content > p {
            font-size: 18px;
            padding: 0;
        }
    }

    /* #endregion */



    /* #region Libraries/Components */

    /* TODO: Temporary styling date range picker plugin until we have custom calendar */
    .daterangepicker {
        box-shadow: var(--drop-shadow);
        border: 1.5px solid #808080 !important;
    }

        .daterangepicker::before,
        .daterangepicker::after {
            display: none !important;
        }

        .daterangepicker td.in-range {
            background-color: var(--ochre-20) !important;
        }

        .daterangepicker td.active,
        .daterangepicker td.active:hover {
            background-color: var(--ochre) !important;
        }

    /* #endregion */
