:root {

    --signature-color: #356026;
    --signature-shade-darker: #284c1a;
    --signature-color-2: #2BA4B0;

    --bs-primary: var(--signature-color);
    --bs-primary-rgb: 73, 127, 56;

    --bs-link-color: var(--bs-primary);
    --bs-link-color-rgb: var(--bs-primary-rgb);

    --bs-link-hover-color: var(--signature-shade-darker);
    --bs-link-hover-color-rgb: 40, 76, 26;


    --top-bar-bg: #333;
    --top-bar-color: #fff;

    --navbar-active-color: var(--signature-color);
    --navbar-hover-color: var(--signature-color);

    --primary-btn-bg: #333;
    --primary-btn-text-color: #fff;
    --primary-btn-hover-bg: var(--signature-color);

    --primary-btn-outline-hover-bg: #1689b4;
    --primary-btn-outline-hover-color: #fff;

    --primary-info-text-bg: #fdf3c9;
    --primary-info-text-border-color: #8CB450;

    --link-color: #1689b4;
    --link-hover-color: #0b6a8e;

    --footer-bg: #424242;
    --footer-secondary-bg: #333;
    --footer-text-color: #fff;
    --footer-text-hover-color: var(--signature-color);
}

.fa-stack i:last-of-type {
    color: var(--signature-color);
}

body {

    background-color: #f7f9fc;
    font-family: 'Source Sans 3', sans-serif;
    font-weight: 350;


    h6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 {
        font-family: 'Montserrat', sans-serif;
        font-weight: 400 !important;
    }

    a:hover {
        text-decoration: underline !important;
    }

    .navbar a {
        font-weight: 400 !important;
        font-size: 1.25rem;
    }

    .navbar a:hover {
        text-decoration: none !important;;
    }

    .navbar a.active {
        text-decoration: none;
        box-shadow: inset 0 -2px 0 var(--signature-color-2);
    }

    .ui-widget {
        font-family: 'Source Sans 3', sans-serif !important;
        font-weight: 400 !important;
    }

    .content {
        background-color: #fff;
        min-height: 80vh;
    }

}


body {
    .ui-widget, .ui-inputfield {
        font-size: 1rem !important;
        font-family: 'Inter', sans-serif !important;
        font-weight: 300 !important;

        /** Fixed pf style of own blocks. */
        .ui-g-12, .ui-md-12 {
            display: block !important;
        }

    }
    .form-results{
        font-size: 1rem !important;
    }


    .ui-button:not(.rounded-pill, .ui-datepicker-trigger ), a.ui-button {
        background-color: var(--primary-btn-bg) !important;
        border-color: var(--primary-btn-bg) !important;
        color: var(--primary-btn-text-color) !important;
    }
    .ui-button:not(.rounded-pill):not(.ui-spinner-button), a.ui-button, .ui-inputfield, .ui-selectonemenu,
    body .ui-selectonebutton > .ui-button:first-child, body .ui-selectmanybutton > .ui-button:first-child{
        border-radius: 0.375rem !important;
    }
    .ui-selectonebutton > .ui-button:not(:last-child), body .ui-selectmanybutton > .ui-button:not(:last-child) {
        border-top-right-radius: 0 !important;
        border-bottom-right-radius: 0 !important;
    }
    .ui-selectonebutton > .ui-button:not(:first-child), body .ui-selectmanybutton > .ui-button:not(:first-child) {
        border-top-left-radius: 0 !important;
        border-bottom-left-radius: 0 !important;
    }

    /** Icon offset fix. */
    .ui-button.ui-button-icon-only .ui-icon {
        margin-left: -0.60rem;
    }

    .ui-selectonebutton .ui-state-default {
        background-color: var(--primary-btn-text-color) !important;
        border-color: var(--primary-btn-hover-bg) !important;
        color: var(--primary-btn-hover-bg) !important;
    }

    .ui-button:hover, .ui-button.ui-state-active, .ui-button:active, .ui-button:focus, a.ui-button:hover, a.ui-button:active, a.ui-button:focus {
        background-color: var(--primary-btn-hover-bg) !important;
        border-color: var(--primary-btn-hover-bg) !important;
        color: var(--primary-btn-text-color) !important;
    }


    .ui-paginator .ui-paginator-pages .ui-paginator-page.ui-state-active {
        background-color: var(--primary-btn-hover-bg) !important;
    }

    /** Bootstrap color adjustments. */
    .btn-primary {
        --bs-btn-bg: var(--signature-color);
        --bs-btn-border-color: var(--signature-color);
        --bs-btn-hover-bg: #7aa340;
        --bs-btn-hover-border-color: #7aa340;
        --bs-btn-active-bg: #7aa340;
        --bs-btn-active-border-color: #7aa340;
        --bs-btn-disabled-bg: var(--signature-color);
        --bs-btn-disabled-border-color: var(--signature-color);
    }

    a.btn-primary, a.btn-primary:hover {
        color: var(--primary-btn-text-color) !important;
        text-decoration: none !important;
    }

    .btn-outline-primary {
        --bs-btn-color: var(--signature-color);
        --bs-btn-border-color: var(--signature-color);
        --bs-btn-hover-color: #fff;
        --bs-btn-hover-bg: #7aa340;
        --bs-btn-hover-border-color: #7aa340;
        --bs-btn-focus-shadow-rgb: var(--bs-primary-rgb);
        --bs-btn-active-color: #fff;
        --bs-btn-active-bg: #7aa340;
        --bs-btn-active-border-color: #7aa340;
        --bs-btn-disabled-color: var(--signature-color);
        --bs-btn-disabled-border-color: var(--signature-color);
    }

    a.btn-outline-primary {
        background-color: var(--primary-btn-hover-bg) !important;
        border-color: var(--primary-btn-bg);
        color: var(--primary-btn-text-color) !important;
    }


    a.btn-outline-primary {
        background-color: var(--primary-btn-hover-bg) !important;
        border-color: var(--primary-btn-bg);
        color: var(--primary-btn-text-color) !important;
    }

    a.btn-outline-primary:hover {
        color: var(--primary-btn-outline-hover-color) !important;
        background-color: var(--primary-btn-outline-hover-bg) !important;
        text-decoration: none !important;
    }

    .ui-carousel .ui-carousel-indicators .ui-carousel-indicator.ui-state-highlight button {
        background-color: var(--primary-btn-bg) !important;
    }

    .ui-button.btn-secondary, a.btn-outline-secondary {
        border-radius: 0.375rem !important;
        color: var(--primary-btn-bg) !important;
        border-color: var(--primary-btn-bg) !important;
        background-color: var(--primary-btn-text-color) !important;
    }

    .ui-button.btn-table {
        border-radius: 0.375rem !important;
        background-color:#f8f9fa !important;
        border-color: #ced4da !important;
    }

    .ui-button.btn-secondary:hover, .ui-button.btn-secondary:active, .ui-button.btn-secondary:focus,
    a.ui-button.btn-secondary:hover, a.ui-button.btn-secondary:active, a.ui-button.btn-secondary:focus,
    a.btn-outline-secondary:hover, a.btn-outline-secondary:active, a.btn-outline-secondary:focus
    {
        color: var(--primary-btn-text-color) !important;
        border-color: var(--primary-btn-bg) !important;
        background-color: var(--primary-btn-bg) !important;
        text-decoration: none !important;
    }

    .btn:hover {
        border-color: var(--primary-btn-bg) !important;
    }

    .ui-autocomplete {
        border: none !important;

        input {
            width: 100%;
        }
    }
    .ui-radiobutton .ui-radiobutton-box.ui-state-active {
        border-color: var(--primary-btn-bg) !important;
        background-color: var(--primary-btn-bg) !important;
        color: #fff;
    }

    .ui-chkbox {

        .ui-chkbox-box.ui-state-active {
            border-color: var(--primary-btn-bg) !important;
            background-color: var(--primary-btn-bg) !important;
        }
        /** Fix icon position for checkboxes. */
        .ui-chkbox-icon {
            margin-top: -0.7em !important;
        }
    }

    /** Fix icon position for messages. */
    .ui-messages-info-icon {
        margin-top: -0.2em !important;
    }
    /** Fix PF wrapped input. */
    .w-100 input, .w-100 .ui-selectonemenu-label {
        width: 100%;
    }

    .ui-calendar .ui-button.ui-button-icon-only .ui-icon {
        margin-top: -0.75em !important;
        margin-left: -0.5em !important;
    }

    /** For log labels back-drod effect for trigger. */
    .ui-selectonemenu-trigger{
        background-color: rgba(255, 255, 255, 0.8) !important;
        backdrop-filter: blur(2px);
    }

    .kbw-signature canvas {
        border-radius: 0.375rem !important;
    }


    .ui-selectonemenu-panel,  .ui-growl, .ui-dialog {
        z-index: 1060 !important;
    }

    /** Fixes tree-node label taking too much width. */
    .category-tree {
        .ui-treenode-label {
            padding: 0 !important;
            width: 96%;
        }
    }


    .medium-dialog {
        max-width: 600px !important;
    }

    .ui-messages > div {
        padding: 1rem !important;
        border-radius: 0.375rem !important;
    }

    .ui-messages .ui-messages-error .ui-messages-error-icon {
        font-size: inherit !important;
    }

    .input-group-start, .input-group-start input {
        border-top-right-radius: 0 !important;
        border-bottom-right-radius: 0 !important;
    }

    .pf-input-group {
        .form-control{
            padding: 0 !important;
            flex: 0 0 auto;
            width: auto;
        }

        .hasDatepicker {
            border: none !important;
            width: 6rem !important;
        }
    }
}



.call-to-action {
    width: min(92vw, 780px);
    color: #111827;
    background:
            linear-gradient(135deg, rgba(255, 255, 255, 0.72), rgba(255, 255, 255, 0.34)),
            linear-gradient(135deg, rgba(140, 180, 80, 0.22), rgba(43, 164, 176, 0.18)) !important;
    box-shadow:
            0 24px 70px rgba(0, 0, 0, 0.26),
            inset 0 1px 0 rgba(255, 255, 255, 0.72),
            inset 0 -1px 0 rgba(255, 255, 255, 0.18);
    backdrop-filter: blur(22px) saturate(165%);
    -webkit-backdrop-filter: blur(22px) saturate(165%);
    isolation: isolate;
}

.call-to-action::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    border-radius: inherit;
    background:
            radial-gradient(circle at 18% 12%, rgba(255, 255, 255, 0.75), transparent 34%),
            radial-gradient(circle at 82% 88%, rgba(140, 180, 80, 0.34), transparent 38%),
            radial-gradient(circle at 92% 8%, rgba(43, 164, 176, 0.28), transparent 30%);
    pointer-events: none;
}

.call-to-action h1 {
    font-weight: 300 !important;
    text-wrap: balance;
    text-shadow: 0 1px 18px rgba(255, 255, 255, 0.45);
}

@media (max-width: 575.98px) {
    .call-to-action {
        width: calc(100vw - 2rem);
        min-width: 0 !important;
    }

    .call-to-action h1 {
        font-size: clamp(2rem, 13vw, 3rem);
    }
}

.bg-streak-gradient {
    background: linear-gradient(90deg, #c5efe8 0%, var(--primary-info-text-border-color) 50%, var(--signature-color-2) 100%);
}

.bg-primary-vertical-gradient {
    background: linear-gradient(180deg, var(--primary-info-text-border-color) 0%, var(--signature-color-2) 100%);
}

.bg-pale {
    background: linear-gradient(180deg, rgba(140, 180, 80, 0.25) 0%, rgba(43, 164, 176, 0.18) 100%);
}

.bg-activity-BIKE {
    background-color: #162162;
}
.bg-activity-WALKING {
    background-color: #2aa5b0;
}
.bg-activity-SCOOTER {
    background-color: #8db451;
}
.bg-activity-SKATEBOARD {
    background-color: #bef1f4;
}
.bg-activity-INLINE_SKATES {
    background-color: #356026;
}
.bg-activity-WHEELCHAIR {
    background-color: #7aa340;
}

.activity-type-bar {
    height: 1.25rem;
}

.rounded-bottom-arc {
    height: 50vh;
    width: 100%;

    /* 150% width creates a massive horizontal circle */
    /* 20% height keeps the vertical bend very shallow and light */
    clip-path: ellipse(150% 100% at 50% 0%);
}

/* Custom Carousel Indicators */
.carousel-indicators.indicators-rounded {
    position: relative;
    margin: 0;
}

.carousel-indicators.indicators-rounded [data-bs-target] {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 0;
    margin: 0 5px;
    background-color: #cbd5e1; /* Gray-300 */
    transition: all 0.3s ease;
}

.carousel-indicators.indicators-rounded .active {
    background-color: var(--signature-color);
    transform: scale(1.2);
}

/* Swiper Custom Pagination */
.swiper-pagination.swiper-pagination-bullets {
    position: relative;
    margin: 0;
    display: flex;
}

.swiper-pagination-bullet {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 0;
    margin: 0 5px;
    background-color: #cbd5e1;
    opacity: 1;
    transition: all 0.3s ease;
}

.swiper-pagination-bullet-active {
    background-color: var(--signature-color);
    transform: scale(1.2);
}

/* Swiper Tabs */
.swiper-tabs {
    position: relative;
}

.swiper-tabs .swiper-tab {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    visibility: hidden;
    transition: opacity .35s ease-in-out, visibility .35s ease-in-out;
}

.swiper-tabs .swiper-tab.active {
    position: relative;
    opacity: 1;
    visibility: visible;
}

.zindex-2 {
    z-index: 2;
}

.opacity-15 {
    opacity: 0.15;
}

.bg-gradient-primary {
    background: linear-gradient(180deg, var(--signature-color) 0%, var(--signature-color-2) 100%);
}

/* PrimeFaces Overrides */
.distance-input input {
    width: auto !important;
    max-width: 8rem;
    max-height: 3.5rem;
    font-size: 3rem !important;
    border-bottom: 3px solid #e9ecef !important;
    border-radius: 0 !important;
}

body .ui-selectonebutton-badge.ui-selectonebutton {
    display: flex !important;
    flex-wrap: wrap;
    gap: 0.5rem;
    border: none !important;
    background: transparent !important;
}

body .ui-selectonebutton-badge.ui-selectonebutton .ui-button {
    background: var(--bs-body-secondary-bg) !important;
    border: none !important;
    border-radius: 0.75rem !important;
    color: var(--bs-body-color) !important;
    padding: 0.5rem 1rem !important;
    box-shadow: none !important;
    margin: 0 !important;
    font-weight: 500;
}

body .ui-selectonebutton-badge.ui-selectonebutton .ui-button.ui-state-active {
    background: var(--signature-color-2) !important;
    color: white !important;
}

body .ui-selectonebutton-small.ui-selectonebutton {
    display: flex !important;
    gap: 1rem;
    border: none !important;
    background: transparent !important;
}

body .ui-selectonebutton-small.ui-selectonebutton .ui-button {
    background: transparent !important;
    border: none !important;
    color: var(--bs-secondary-color) !important;
    padding: 0 !important;
    box-shadow: none !important;
    font-size: 0.875rem !important;
    font-weight: 500;
}

body .ui-selectonebutton-small.ui-selectonebutton .ui-button.ui-state-active {
    color: var(--bs-body-color) !important;
    font-weight: 600 !important;
}

body .ui-datepicker.pf-datepicker-custom {
    padding: 0;
}

body .ui-datepicker.pf-datepicker-custom .ui-datepicker-trigger {
    background: transparent;
    border: none;
    color: var(--bs-secondary-color);
}

.activity-type-option {
    display: inline-flex;
    align-items: stretch;
}

.activity-type-radio {
    position: static;
    width: auto;
    height: auto;
    opacity: 1;
}

.activity-type-radio .ui-radiobutton-box {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.activity-type-radio input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.activity-type-button {
    cursor: pointer;
}

.activity-type-option:has(input:checked) .activity-type-button {
    color: var(--bs-btn-active-color);
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
}

.activity-type-option:has(input:focus-visible) .activity-type-button,
.activity-type-option:has(input:focus) .activity-type-button {
    outline: 0.25rem solid rgba(var(--bs-primary-rgb), 0.35);
    outline-offset: 0.15rem;
}
/*
.activity-type-option:has(input:checked) .activity-type-button::after {
    content: "\f00c";
    font-family: "Font Awesome 7 Pro";
    font-weight: 900;
    margin-left: 0.5rem;
}
 */

.skateboard-icon {
    display: inline-block;
    width: 1.2rem;
    height: 1.2rem;
    background-color: currentColor;
    vertical-align: -0.125em;

    mask: url("/jakarta.faces.resource/img/skateboard-icon.svg.xhtml") center / contain no-repeat;
    -webkit-mask: url("/jakarta.faces.resource/img/skateboard-icon.svg.xhtml") center / contain no-repeat;
}


/* Fixed datepicker for home. */
body .ui-datepicker.pf-datepicker-custom {
    padding: 0;
}

body .ui-datepicker.pf-datepicker-custom .ui-datepicker-trigger {
    background: transparent;
    border: none;
    color: var(--bs-secondary-color);
}

.pf-subtle-datepicker {
    position: relative;
}

.pf-subtle-datepicker input {
    width: 100%;
}

.pf-subtle-datepicker .ui-datepicker-trigger {
    position: absolute;
    top: 50%;
    right: 0.35rem;
    transform: translateY(-50%);
    width: 2.25rem;
    height: 2.25rem;
    padding: 0 !important;
    border: 0 !important;
    background-color: transparent !important;
    color: var(--bs-secondary-color) !important;
    box-shadow: none !important;
    z-index: 2;
}

.pf-subtle-datepicker .ui-datepicker-trigger:hover,
.pf-subtle-datepicker .ui-datepicker-trigger:focus,
.pf-subtle-datepicker .ui-datepicker-trigger:active {
    background-color: transparent !important;
    color: var(--bs-body-color) !important;
    box-shadow: none !important;
}

.pf-subtle-datepicker .ui-datepicker-trigger .ui-icon {
    margin: 0 !important;
}