/*
	Theme Name: Hubbell Realty
	Template: hello-elementor
	Theme URI: https://www.strategicamerica.com
	Description:
	Author: Strategic America
	Author URI: https://www.strategicamerica.com
	Version: 1.0.0
	Text Domain: hello-elementor
*/
:root {
    --custom-primary-color: #014991;
    --custom-secondary-color: #56A0D3;
    --custom-text-color: #000000;
    --custom-accent-color: #56A0D3;
    --custom-border-color: #DBE9F3;
    --custom-button-hover-color: #013A74;
    --custom-content-max-width: 1400px;
    --line-offset: 30px;
}

/**
* Global and Element overrides
*/
html,
html > body {
    overflow-x: hidden;
    padding: 0;
}
@media (max-width: 768px) {
    html, body { width: 100vw; overflow-x: clip; }
    html > body { padding: 0; }
}
@media (max-width: 480px) {
    html > body { padding: 0; }
}

h1, h2, h3, h4, h5, h6 {
    text-wrap: balance;
}

/**
* Footer
*/
html > body .footer-links {
    font-size: 1em;
}
html > body .footer-links p,
html > body .footer-links p a,
html > body .footer-links p strong {
    font-weight: 300;
}
html > body .footer-links p {
    margin: 10% 0;
}
html > body .footer-links p strong {
    color: #56A0D3;
}
html > body .footer-links p a {
    color: rgba(255,255,255,1);
    transition: all 0.2s;
}
html > body .footer-links p a:hover {
    color: rgba(255,255,255,0.5);
}

/**
* Misc
*/
html > body .elementor-counter .elementor-counter-title {
	padding-top: 10px;
	text-align: center;
	line-height: 1.3em;
	font-size: 1em;
}

header {
    position: relative;

    &::after {
        content: '';
        height: 1px;
        width: 100vw;
        background-color: var(--custom-border-color);
        position: absolute;
        bottom: 0;
        left: 50%;
        transform: translateX(-50%);
        pointer-events: none;
    }
}

.hide {
    display: none !important;
}

div > p:last-child,
div > ul:last-child {
    margin-bottom: 0;
}

.section-pad-top,
.section-break-top {
    padding-top: 3em;

    @media (max-width: 1024px) {
        padding-top: 2em;
    }

    @media (max-width: 768px) {
        padding-top: 24px;
    }
}

.section-pad-bottom,
.section-break-bottom {
    padding-bottom: 3em;

    @media (max-width: 1024px) {
        padding-bottom: 2em;
    }

    @media (max-width: 768px) {
        padding-bottom: 24px;
    }
}

.section-pad-both {
    padding-top: 3em;
    padding-bottom: 3em;

    @media (max-width: 1024px) {
        padding-top: 2em;
        padding-bottom: 2em;
    }

    @media (max-width: 768px) {
        padding-top: 24px;
        padding-bottom: 24px;
    }
}

.background-video .elementor-widget-container {
    display: flex;
    flex-direction: row;
    align-items: center;
    width: 100%;
    height: auto;
    max-height: 85vh;
    overflow: hidden;

    .elementor-wrapper {
        width: 100%;
        height: 100%;
        aspect-ratio: 16 / 9;
    }
}

/**
* Line Animation
*/
#line-animation {
    position: absolute;
    z-index: 100;
    display: block;
    width: 2px;
    left: calc(((100% - var(--custom-content-max-width)) - ((100% - var(--custom-content-max-width)) / 2)) - var(--line-offset));
    background-color: var(--custom-secondary-color);
    transition: height 1.5s ease-in-out;
    pointer-events: none;
    transform: scale(1, 1);
    transform-origin: top;

    @media (max-width: 1500px) {
        left: 20px;
    }

    @media (max-width: 769px) {
        left: 10px;
    }
}

.floating-header {

    @media (min-width: 769px) {
        position: relative;
        height: 0 !important;

        h1, h2, h3 {
            position: absolute;
            bottom: 100%;
            margin-bottom: 40px;
            font-size: 4em !important;
            color: #fff !important;
        }
    }

    @media (max-width: 769px) {

        h1, h2, h3 {
            padding: 24px;
        }
    }

    @media (min-width: 769px) and (max-width: 1024px) {
        margin-left: 2em !important;
    }

    @media (min-width:1025px) and (max-width:1480px) {
        margin-left: 3em !important;
    }
}

/**
* Elastic Gallery
*/
.elastic-gallery-details-container {
    display: flex;
    flex-direction: column;
    gap: 15px 0;
    margin-top: 20px;
    margin-bottom: 50px;

    details.image-details {

        summary {
            position: relative;

            &::after {
                content: '»';
                position: absolute;
                bottom: 15px;
                right: 12px;
                display: block;
                margin: 0;
                padding: 0;
                font-size: 28px;
                font-weight: 200;
                line-height: 1;
                transform-origin: center;
                transition: all 0.2s;
            }

            &::marker {
                content: none;
            }

            &:hover {
                cursor: pointer;
            }
        }

        > div {
            margin-top: 25px;
            margin-bottom: 30px;

            .elementor-widget-button {
                display: inline-block;
            }
        }

        &[open] summary::after {
            bottom: 14px;
            right: 7px;
            transform: rotate(90deg);
        }
    }

    figure.elastic-gallery-image {
        pointer-events: none;
        flex: 1;
        position: relative;
        margin: 0;
        padding: 0;
        max-height: 100%;
        width: 100%;
        overflow: hidden;
        transition: all 0.5s ease-in-out;

        img {
            display: block;
            object-fit: cover;
            object-position: center;
            min-height: 370px;
            width: 100%;

            @media (max-width: 480px) {
                min-height: 240px;
            }
        }

        figcaption {
            position: absolute;
            left: 0;
            bottom: 0;
            display: block;
            margin: 0;
            padding: 10px;
            width: 100%;
            text-align: center;
            font-style: normal !important;
            color: var(--e-global-color-text);
            font-family: var(--e-global-typography-primary-font-family), Sans-serif;
            font-weight: 700;
            text-decoration: none !important;
            background: rgba(255,255,255,0.75);
        }
    }
}

.elastic-gallery-main {
    margin: 0 auto;
    max-width: var(--custom-content-max-width);

    .elastic-gallery {
        display: flex;
        flex-wrap: nowrap;
        aspect-ratio: 16 / 5;
        gap: 20px;
        width: calc(100% + 120px);
        margin-left: -60px;
    }

    figure.elastic-gallery-image {
        flex: 1;
        position: relative;
        margin: 0;
        padding: 0;
        max-height: 100%;
        overflow: hidden;
        transition: all 0.5s ease-in-out;

        img {
            display: block;
            object-fit: cover;
            object-position: center;
            height: 110%;
            width: 110%;

            &:hover {
                cursor: pointer;
            }
        }

        figcaption {
            position: absolute;
            right: 10px;
            bottom: 10px;
            display: block;
            margin: 0;
            padding: 5px 26px 5px 10px;
            max-width: 90%;
            color: #000;
            font-style: normal !important;
            font-weight: 600;
            text-align: right;
            text-decoration: none !important;
            background: rgba(255,255,255,0.75);
            pointer-events: none;

            &::after {
                content: '»';
                position: absolute;
                bottom: 5px;
                right: 8px;
                display: block;
                margin: 0;
                padding: 0;
                font-size: 28px;
                font-weight: 200;
                line-height: 1;
                transform-origin: center;
                transition: all 0.2s;
            }
        }

        &.active {
            flex: 3;

            figcaption::after {
                bottom: 2px;
                right: 3px;
                transform: rotate(90deg);
            }
        }
    }

    .elastic-gallery-content {
        margin: 5% 0;

        @media (max-width: 1500px) {
            padding-left: 3em;
        }

        @media (max-width: 1024px) {
            padding-left: 2em;
        }

        .elastic-gallery-content-item {
            display: flex;
            flex-direction: column;
            gap: 20px;
            height: 0;
            width: 0;
            max-width: 700px;
            overflow: hidden;
            opacity: 0;
            transition: opacity 0.5s ease-in-out;

            &.active {
                height: auto;
                width: auto;
                overflow: visible;
                opacity: 1;
            }
        }
    }

    @media ( max-width: 1500px ) {

        .elastic-gallery {
            width: 100%;
            margin-left: 0;
        }
    }
}

html > body .elementor-widget-taxonomy-filter {

    .e-filter-item {
        min-width: 60px;
        padding: 12px 15px !important;
        border: 2px solid var(--custom-border-color);
        border-color: var(--custom-border-color) !important;
        color: var(--custom-text-color);
        font-weight: 400;
        font-size: 0.9em;
        line-height: 1;
    }

    .e-filter-item:hover,
    .e-filter-item[aria-pressed="true"] {
        background: var(--custom-border-color);
    }
}

/**
* Timeline
*/
.sa-timeline {
    position: relative;
    padding-top: 3em;
    padding-bottom: 3em;
}
.sa-timeline::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    transform: translateX(-1px);
    width: 2px;
    background: #56A0D3;
}
.sa-timeline > .e-con-inner > .elementor-element {
    width: 50%;
    box-sizing: border-box;
    padding-left: 30px;
    padding-right: 30px;
}
.sa-timeline > .e-con-inner > .elementor-element:nth-of-type(even) {
    margin-right: auto;
    align-content: left;
}
.sa-timeline > .e-con-inner > .elementor-element:nth-of-type(odd) {
    margin-left: auto;
    align-content: right;
}

.sa-timeline > .e-con-inner > .elementor-element h3 {
    position: relative;
    color: #000;
    font-weight: 700;
    font-size: 2.5em;
    margin-bottom: 20px;
    padding-bottom: 20px;
}

.sa-timeline > .e-con-inner > .elementor-element h3::before,
.sa-timeline > .e-con-inner > .elementor-element h3::after {
    content: '';
    position: absolute;
    display: block;
    margin: 0;
    padding: 0;
}

.sa-timeline > .e-con-inner > .elementor-element h3::before {
    left: -30px;
    right: -30px;
    bottom: 0;
    height: 2px;
    background: #56A0D3;
}

.sa-timeline > .e-con-inner > .elementor-element h3::after {
    height: 18px;
    width: 18px;
    background: #56A0D3;
    border-radius: 50%;
    margin-top: 9px;
}

.sa-timeline > .e-con-inner > .elementor-element:nth-of-type(even) * {
    text-align: right;
}
.sa-timeline > .e-con-inner > .elementor-element:nth-of-type(odd) * {
    text-align: left;
}
.sa-timeline > .e-con-inner > .elementor-element:nth-of-type(even) h3::before {

}
.sa-timeline > .e-con-inner > .elementor-element:nth-of-type(even) h3::after {
    right: -39px;
}
.sa-timeline > .e-con-inner > .elementor-element:nth-of-type(odd) h3 {
    text-align: left;
}
.sa-timeline > .e-con-inner > .elementor-element:nth-of-type(odd) h3::before {

}
.sa-timeline > .e-con-inner > .elementor-element:nth-of-type(odd) h3::after {
    left: -39px;
}

@media (max-width: 769px) {

    .sa-timeline::after {
        left: 1px;
    }

    .sa-timeline > .e-con-inner > .elementor-element {
        width: 100%;
        margin: 0 0 2em;
    }

    .sa-timeline > .e-con-inner > .elementor-element h3::after {
        left: -39px !important;
    }

    .sa-timeline > .e-con-inner > .elementor-element * {
        text-align: left !important;
    }
}

/**
* Underlined Headers
*/
h1.underline,
h2.underline,
h3.underline,
h4.underline,
h5.underline,
h6.underline,
.underline h1,
.underline h2,
.underline h3,
.underline h4,
.underline h5,
.underline h6 {
    position: relative;
    margin-bottom: 0;
    padding-bottom: 20px;
}
.underline .ul-element {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    display: block;
    width: 100%;
    max-width: 600px;
    height: 0;
    overflow: hidden;
    border-bottom: 2px solid var(--custom-secondary-color);
    transition: all 1.5s ease-in-out;
}
.underline .ul-element.off-screen,
.underline.left-offset .ul-element.off-screen {
    left: -3000px;
}
.underline.left-offset .ul-element {
    left: -80px;
}
.underline.right-offset .ul-element {
    left: 0;
}
.underline.right-offset .ul-element.off-screen {
    left: 3000px;
}

html > body a.elementor-button {
    font-size: 1em !important;
    font-weight: 700 !important;
    background-color: var(--custom-primary-color) !important;
}
html > body a.elementor-button:hover {
    background-color: var(--custom-button-hover-color) !important;
}

html > body #load-more-btn,
html > body .elementor-button-outlined a.elementor-button {
    border: 2px solid var(--custom-primary-color) !important;
    background-color: transparent !important;
    color: var(--custom-primary-color) !important;
    font-weight: 700 !important;
    transform: opacity 0.2s;
}
html > body #load-more-btn:hover,
html > body .elementor-button-outlined a.elementor-button:hover {
    background-color: var(--custom-primary-color) !important;
    color: #fff !important;
    opacity: 1;
}

html > body .elementor-button-text-link a.elementor-button {
    border: none !important;
    padding: 0 !important;
    background-color: transparent !important;
    color: var(--custom-primary-color) !important;
    transition: opacity 0.2s;
}
html > body .elementor-button-text-link a.elementor-button:hover {
    opacity: 0.75;
}

html > body .floating-frame {

    .elementor-widget-container {
        position: relative;

        figure {
            position: relative;
            z-index: 10;

            &::after {
                content: '';
                display: block;
                position: absolute;
                top: 20px;
                left: 20px;
                width: 100%;
                height: 100%;
                z-index: 5;
                background: transparent;
                border: 2px solid var(--custom-secondary-color);
                pointer-events: none;
            }

            img {
                position: relative;
                z-index: 20;
                display: block;
            }

            figcaption {
                position: absolute;
                z-index: 30;
                bottom: 0;
                left: 0;
                right: 0;
                display: block;
                margin: 0;
                padding: 5px 10px;
                background: rgba(255, 255, 255, 0.7);
                text-align: center;
            }
        }

        @media (max-width: 769px) {

            figure::after {
                top: 10px;
                left: 10px;
            }
        }
    }

    &.position-top-left .elementor-widget-container figure::after {
        top: -20px;
        left: -20px;

        @media (max-width: 769px) {
            top: -10px;
            left: -10px;
        }
    }

    &.position-top-right .elementor-widget-container figure::after {
        top: -20px;
        left: 20px;

        @media (max-width: 769px) {
            top: -10px;
            left: 10px;
        }
    }

    &.position-bottom-left .elementor-widget-container figure::after {
        top: 20px;
        left: -20px;

        @media (max-width: 769px) {
            top: 10px;
            left: -10px;
        }
    }
}

.offering-loop-item {
  position: relative;

    &::after {
        content: '';
        display: block;
        position: absolute;
        top: 20px;
        left: 20px;
        width: 100%;
        height: 100%;
        z-index: -1;
        background: transparent;
        border: 2px solid var(--custom-secondary-color);
        pointer-events: none;

        @media (max-width: 769px) {
            top: 10px;
            left: 10px;
        }
    }

    &[class*="offering-type-"]::before {
        content: '';
        position: absolute;
        z-index: 10;
        top: 0;
        left: 0;
        display: block;
        margin: 0;
        padding: 20px;
        width: 100%;
        height: auto;
        font-family: Manrope, sans-serif;
        font-size: 2em;
        font-weight: 700;
        line-height: 1;
    }

    &.offering-type-future::before {
        content: 'Future Opportunity';
        background: #FFFFFF;
        background: rgba(255,255,255,0.8);
        color: var(--custom-primary-color);
    }

    &.offering-type-current::before {
        content: 'Current Offering';
        background: #014991;
        background: rgba(1,73,145,0.8);
        color: #fff;
    }

    &.offering-type-closed::before {
        content: 'Closed Offering';
        background: #2E2E2E;
        background: rgba(46,46,46,0.8);
        color: #fff;
    }
}

@media (max-width: 1024px) {
    .offering-loop-item[class*="offering-type-"]::before {
       font-size: 1.5em;
    }
}

@media (max-width: 768px) {
    .offering-loop-item[class*="offering-type-"]::before {
       font-size: 1em;
    }
}

/*
* Listing Loop Items
*/
.listing-loop-item {
    position: relative;

    > .elementor-element {
        overflow: hidden;
    }

    .listing-overlay {
        display: block;
        position: absolute;
        left: 0;
        right: 0;
        bottom: 0;
        margin: 0;
        background: rgba(255,255,255,0.675);
        backdrop-filter: blur(4px);
        text-align: center;
        padding: 0 20px;
        box-sizing: border-box;

        img {
            transition: opacity 0.6s ease-in-out;
        }

        .listing-title {
            margin: 0;
            padding: 0;

            .elementor-heading-title {
                margin: 0;
                padding: 10px;
                font-size: 1.3em;
                font-weight: 600;
                color: #000;
            }
        }

        .listing-details {
            display: flex;
            flex-wrap: nowrap;
            flex-direction: column;
            max-height: 0;
            margin: 0;
            padding: 0;
            overflow: hidden;
            transition: max-height 0.6s ease-in-out;
            line-height: 1.4;
        }

        @media (max-width: 480px) {
            font-size: 16px;

            .listing-details .elementor-widget-text-editor {
                font-size: 1em !important;

                p {
                    margin: 0;
                    line-height: 1.4;
                }
            }
        }
    }

    &:hover {

        .listing-details {
            max-height: 1200px;
        }
    }
}

body.elementor-editor-active .listing-loop-item .listing-overlay {
    pointer-events: auto !important;
}

/**
* Elementor Table of Contents
*/
.elementor-widget-table-of-contents {

    .elementor-widget-container {
        border: none !important;

        .elementor-toc__header,
        .elementor-toc__body {
            border: none;
            padding: 0;

            i.fas {
                display: none;
            }
        }

        .elementor-toc__header {
            font-size: 1em !important;
            margin: 0 0 20px;

            .elementor-toc__header-title {
                font-size: 1em !important;
            }
        }

        .elementor-toc__body {
            font-size: 1.375em;

            ul.elementor-toc__list-wrapper > li {
                margin-bottom: 5px;
            }
        }
    }
}

/**
* Elastic Gallery
*/
.sa-elastic-gallery {

    .elastic-gallery-content {

        p {
            margin-bottom: 1.5em;
            margin-block-end: 1.5em;
        }
    }

    @media (max-width: 769px) {
        padding-left: 2em !important;
        padding-right: 2em !important;
    }

    @media (max-width: 480px) {
        padding-left: 24px !important;
        padding-right: 24px !important;
    }
}

/**
* Main Menu
*/

nav {

    ul {

        li {

            i.fa-chevron-down {
                font-size: 10px !important;
            }
        }
    }
}

.elementor-widget-n-menu .e-n-menu-title.e-current a,
.elementor-widget-n-menu .e-n-menu-title.e-current .e-n-menu-dropdown-icon i,
.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.elementor-item-active,
.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:hover {
    color: var(--custom-primary-color) !important;
}

.elementor-element.desktop-menu {

    .elementor-nav-menu,
    .e-n-menu-heading {
        min-height: 100px;
    }

    .elementor-nav-menu {
        z-index: 99;
    }

    .e--pointer-underline .elementor-item:after {
        width: calc(100% - 40px);
        left: 50%;
        transform: translateX(-50%);
    }

    .elementor-nav-menu--dropdown .elementor-sub-item {
        font-weight: 400;
        font-size: 16px;
    }
}

#main-menu-mega {
    position: static;

    > .elementor-widget-container {
        position: static;

        > nav.e-n-menu {
            position: static;

            > .e-n-menu-wrapper {
                position: static;

                > ul.e-n-menu-heading {
                    position: static;

                    > li.e-n-menu-item {
                        position: static;

                        &:has(.e-n-menu-content.e-active) {

                            > .e-n-menu-title {

                                &::before {
                                    background-color: var(--custom-accent-color);
                                }
                            }
                        }

                        > .e-n-menu-title {
                            position: relative;

                            &::before {
                                content: '';
                                height: 4px;
                                width: calc(100% - 32px);
                                background-color: transparent;
                                position: absolute;
                                bottom: 0px;
                                left: 50%;
                                transform: translateX(-50%);
                                pointer-events: none;
                            }
                        }

                        .e-n-menu-content {
                            left: 0 !important;
                            right: auto !important;
                        }
                    }
                }
            }
        }
    }

    .menu-list {

        > .elementor-widget-container {

            > .e-n-menu {

                > .e-n-menu-wrapper {

                    > ul.e-n-menu-heading {
                        justify-content: center;

                        > li.e-n-menu-item {

                            > .e-n-menu-title {

                                .e-n-menu-title-text {
                                    text-transform: uppercase;
                                    font-weight: 700;
                                }
                            }
                        }
                    }
                }
            }
        }

        ul.e-n-menu-heading {

            li.e-n-menu-item {
                display: block !important;
                width: 25%;

                .e-n-menu-title {
                    padding-left: 0;
                    padding-right: 0;

                    .e-n-menu-title-container {

                    }

                    button {
                        display: none;
                    }
                }

                .e-n-menu-content {
                    display: block !important;
                    position: static;
                    width: auto;

                    div[data-element_type="container"] {
                        display: block !important;
                        padding: 0;
                    }

                    .e-con-inner {
                        padding: 0;
                    }

                    .e-n-menu-heading {
                        display: block !important;
                        padding-right: 30px;

                        li.e-n-menu-item {
                            width: 100%;

                            .e-n-menu-title {
                                padding-left: 0;
                                padding-right: 0;

                                .e-n-menu-title-text {
                                    position: relative;
                                    font-weight: 400;
                                    white-space: normal;
                                    transition: all 0.2s;

                                    &:hover {

                                        &::after {
                                            width: 100%;
                                        }
                                    }

                                    &::after {
                                        content: '';
                                        height: 2px;
                                        width: 0;
                                        background-color: var(--custom-accent-color);
                                        position: absolute;
                                        top: 100%;
                                        left: 0;
                                        transition: all 0.2s;
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }

    .elementor-widget-image {

        .wp-caption {
            position: relative;
            max-width: 300px;
            height: 276px;

            > a {
                height: inherit;
                width: inherit;
                display: block;
            }

            img {
                object-fit: cover;
                aspect-ratio: 1/1;
            }

            .widget-image-caption {
                display: flex;
                flex-direction: column;
                height: 12%;
                font-weight: 700;
                font-size: 18px;
                font-style: normal;
                padding: 0 20px;
                position: absolute;
                bottom: -1px;
                left: 0;
                width: 100%;
                background-color: rgba(255, 255, 255, 0.7);
                backdrop-filter: blur(4px);
                pointer-events: none;
                transition: all 0.2s;
            }
        }

        &:hover {

            .wp-caption {

                .widget-image-caption {
                    justify-content: center;
                    padding: 20px;
                    height: calc( 100% + 1px );
                }
            }
        }
    }
}

/**
* Mobile Menu
*/
#mobile-main-nav {

    nav.elementor-nav-menu--dropdown {
        top: 175% !important;
    }

    .elementor-nav-menu--dropdown > ul {
        border: 2px solid #fff;
        font-size: 16px;
        * {font-size: 1em;}

        > li {

            > a {
                font-size: 18px;
            }
        }

        li {
            border-bottom: 1px solid #DBE9F3;

            a {
                background-color: #fff;
                color: #000;
                font-weight: 300;

                &.highlighted {
                    background-color: #DBE9F3;
                    color: #000;
                }

                .sub-arrow {
                    color: var(--e-global-color-text);
                    position: absolute;
                    right: 15px;

                    i:before {
                        font-size: 24px;
                    }
                }
            }

            &.uppercase > a {
                text-transform: uppercase;
            }

            &.strong > a {
                font-weight: 600;
            }

            &.centered > a {
                text-align: center;
                justify-content: center;
            }

            &.color-primary > a {
                color: var(--custom-primary-color);
            }

            &.body-font-size > a {
                font-size: 1em;
            }

            &.outline {
                border: 2px solid var(--custom-secondary-color);

                > a {
                    justify-content: center;
                    text-align: center;
                }
            }
        }

        ul.sub-menu.elementor-nav-menu--dropdown {

            > li {

                > a {
                    background: #f5f5f5;

                    &.highlighted {
                        background-color: #fff;
                    }
                }
            }

            ul.sub-menu.elementor-nav-menu--dropdown {

                li {
                    border-bottom: none;

                    a {
                        background-color: #fff;
                    }
                }
            }
        }

        > li > a .sub-arrow > i:before {
            content: '\002B';
        }

        > li > a[aria-expanded="true"] .sub-arrow > i:before {
            content: '\2212';
        }

        > li > ul > li > a .sub-arrow > i:before {
            content: '\f078';
            font-size: 14px;
        }

        > li > ul > li > a[aria-expanded="true"] .sub-arrow > i:before {
            content: '\f077';
        }

        ul ul a {
            border-width: 30px;

            .centered {
                border-width: none;
            }
        }
    }

    @media ( max-width: 767px ) {
        nav.elementor-nav-menu--dropdown {
            top: 145% !important;
        }
    }
}

/**
* Gravity Forms
*/
.gform_wrapper.gform-theme--foundation {

    .gform_fields {
        row-gap: 20px;
    }

    form {

        .gform_footer input[type="submit"].gform_button.button,
        .gform_footer .gform_button.button,
        input[type="submit"].gform_button.button,
        .gform_button.button {
            background-color: var(--custom-primary-color);
            border-radius: 0px;
            font-family: var(--e-global-typography-text-font-family), Sans-serif;
            font-size: 18px;
            font-weight: 700;
            min-height: 42px;
        }
    }
}

.gform_wrapper > form,
form {

    .ginput_container input,
    .ginput_container select,
    .ginput_container textarea,
    input,
    select,
    textarea {
        border-color: var(--custom-border-color);
        border-width: 2px;
        border-radius: 0px;
        box-shadow: none;
    }

    .ginput_container input,
    .ginput_container select,
    input,
    select {
        min-height: 55px;
    }

    .ginput_container select,
    select {
        display: inline-flex;
        align-items: center;
    }

    .ginput_container textarea,
    textarea {
        min-block-size: 120px !important;
    }

    .gfield {

        .gfield_label {
            font-weight: 400;
        }
    }
}

/**
* Element custom styles
*/
.elementor-element figure {
	display: inline-block;
}

.elementor-element ul {
	margin-bottom: 2em;
}

.elementor-widget-n-accordion {
    margin: 1.5em 0;
    border-bottom: 1px solid var(--custom-secondary-color);

	.e-n-accordion-item {

		.e-n-accordion-item-title {
			margin: 0;
			padding: 1.5em 10px 1em;
			border: none;
			border-top: 1px solid var(--custom-secondary-color);

			.e-n-accordion-item-title-text {
				font-size: 1.25em;
				font-weight: 700;
                font-family: "Manrope", sans-serif;
			}

			.e-n-accordion-item-title-icon {
				margin-left: auto;
				overflow: visible;

				> span,
                > span > * {
					overflow: visible;
                    height: 24px;
                    width: 24px;
                }
			}
		}

		>.elementor-element {
			margin: 0;
			padding: 0 10px 24px 10px;
			border: none;
		}
	}
}

.heading-line-through {

	h1,	h2,	h3,	h4,	h5,	h6 {
		display: flex;
		flex-direction: row;

		&::after {
			content: '';
			flex: 1 1;
			display: inline-block;
            max-width: 480px;
			width: 50%;
			height: 2px;
			margin: auto 0 auto 20px;
			background: var(--custom-secondary-color);
			vertical-align: middle;
		}
	}
}

.bordered-grid {
    border: 1px solid #eee !important;
    border-bottom: none !important;
    gap: 0 !important;

    > .elementor-element {
        width: 100%;
        height: 100%;
        align-content: center;

        .elementor-widget-container {
            align-content: center;
            padding: 10px 20px;
            border-bottom: 1px solid #eee;

            p {
                margin: 0;
                padding: 0;
            }
        }

        &.elementor-widget-heading .elementor-heading-title {
            font-size: 1.2em;
            font-weight: 700;
            color: var(--custom-primary-color);
        }
    }
}

.blue-column {
    background-color: var(--custom-primary-color);

    * {
        color: #fff !important;
    }

    strong {
        font-size: 1.2em;
    }

    p {
        margin-bottom: 5px !important;
    }

    .elementor-divider {
        margin: 10px 0;

        .elementor-divider-separator {
            border-color: var(--custom-secondary-color) !important;
        }
    }

    .elementor-widget-heading {
        margin-bottom: 1em;
    }
}

.property-amenities {
    display: grid;
    grid-template-columns: auto auto auto;
    gap: 2em;
    margin: 3em 0;
    padding: 0;

    .amenity {
        display: flex;
        gap: 1em;

        figure.icon {
            height: 32px;
            width: 32px;

            img {
                width: 100%;
                height: 100%;
                object-fit: contain;
            }
        }

        .title {
            font-size: 1.2em;
            font-weight: 700;
            font-family: Manrope, sans-serif;
            color: var(--custom-primary-color);
        }
    }
}

@media (max-width:768px) {

    .property-amenities {
        grid-template-columns: auto auto;

        .amenity .title {
            font-size: 1em;
            line-height: 1.3;
        }
    }
}

ul:not([class]),
ul.wp-block-list {
    padding: 0 0 0 30px;
    margin: 0 0 24px;

    > li {
        position: relative;
        font-size: 1em;
        line-height: 1.75;
        margin: 0;
        padding: 0;

        &::marker,
        &::before,
        &::after {
            content: '';
            position: absolute;
            display: inline-block;
            overflow: hidden;
            margin: 0;
            padding: 0;
            line-height: 1;
            font-size: 1em;
            text-align: center;
            transform: scale(1);
            transform-origin: center center;
        }

        &::before {
            content: '\f111';
            left: -19.5px;
            top: 2em;
            overflow: visible;
            height: 6px;
            width: 6px;
            font-family: "Font Awesome 5 Free";
            font-size: 6px;
            font-weight: 700;
            color: #000;
            line-height: 6px;
        }

        &::after {
            left: -17px;
            top: 1.25em;
            bottom: -8px;
            width: 1px;
            background: var(--custom-border-color);
        }
    }
}

/**
* HubSpot Forms
*/
.hbspt-form form {
    display: block;
    max-width: 768px;
    margin: auto;
    padding: 0;

    fieldset {
        display: block;
        position: relative;
        width: 100%;
        max-width: 100%;
        margin: 0 0 2em;

        &.form-columns-2 {
            display: flex;
            gap: 1em;

            .hs-form-field {
                position: relative;
                width: 50%;
            }

            @media (max-width:480px) {
                display: block;

                .hs-form-field {
                    width: 100%;
                    margin-top: 2em;
                }
            }
        }
    }

    label {
        margin: 0 0 10px;
    }

    ul.hs-error-msgs {
        position: absolute;
        bottom: -18px;
        right: 20px;
        margin: 0;
        padding: 0;
        background: #fff;

        li {
            margin: 0;
            padding: 5px;
            list-style: none;
            font-size: 12px;
            font-style: italic;
            color: maroon;
        }
    }

    .hs_error_rollup ul.hs-error-msgs {
        position: static;

        li {
            margin: 0 0 1em;
            padding: 0;
            font-size: 1em;
        }
    }

    div.input {
        display: flex;
        margin: 0;
        padding: 0;
        gap: 0;

        input, select, textarea {
            margin: 0 !important;
            width: 100% !important;
            background: #fff;
        }
    }

    .grecaptcha-badge {
        margin: 0 0 1em;
    }
}