:root {

    --text-xl: clamp(2rem, 2.2vw + 1.56rem, 3.438rem); 
    --text-l: clamp(1.5rem, 0.438vw + 1.413rem, 1.9375rem);  
    --text-m: clamp(1.125rem, 0.215vw + 1.087rem, 1.25rem);
    --text-s: clamp(0.938rem, 0.095vw + 0.919rem, 1rem);
    --text-xs: clamp(0.875rem, 0.05vw + 0.85rem, 0.9375rem);

    --primary-font: "Montserrat";
    --secondary-font: "Source Sans Pro";

    --space: clamp(1.75rem, 2.677vw + 1.215rem, 3.5rem); 
    --space-005x: calc(var(--space) * 0.05);
    --space-015x: calc(var(--space) * 0.15);
    --space-025x: calc(var(--space) * 0.25);
    --space-035x: calc(var(--space) * 0.35);
    --space-05x: calc(var(--space) * 0.5);
    --space-075x: calc(var(--space) * 0.75);
    --space-125x: calc(var(--space) * 1.25);
    --space-15x: calc(var(--space) * 1.5);
    --space-175x: calc(var(--space) * 1.75);
    --space-2x: calc(var(--space) * 2);
    --space-25x: calc(var(--space) * 2.5);
    --space-35x: calc(var(--space) * 3.5);
    --space-45x: calc(var(--space) * 4.5);
    --space-55x: calc(var(--space) * 5.5);
    --space-65x: calc(var(--space) * 6.5);
    --space-75x: calc(var(--space) * 7.5);
    --space-3x: calc(var(--space) * 3);
    --space-4x: calc(var(--space) * 4);

    --minus-1x: calc(-1 * var(--space));
    --minus-2x: calc(-1 * var(--space-2x));
    --minus-3x: calc(-1 * var(--space-3x));
    --minus-4x: calc(-1 * var(--space-4x));
    --minus-5x: calc(-1 * var(--space-5x));
    --minus-6x: calc(-1 * var(--space-6x));
    --minus-7x: calc(-1 * var(--space-7x));

    --container-width: 1366px;
    --breakout-space: calc(calc((100vw - var(--container-width)) / 2) + var(--space));
    --breakout-container: 100%;
}

@media (max-width: 1366px) {
    :root {
        --breakout-space: var(--space); 
        --breakout-container: var(--container-width);
    }
}

body {
    font-family: var(--secondary-font);
}

/* Utilities */

.vertical-heading {
    writing-mode: vertical-lr;
    text-orientation: upright;
}

@media (max-width: 767px) {
    .vertical-heading {
        writing-mode: unset;
        text-orientation: unset;
    }
}

/* Global */

.dynamic-entry-content > p:last-child {
    margin-bottom: 0;
}

.dynamic-entry-content > p:only-child {
    margin: 0;
}
  
/* Header */

.contact-nav-link,
.login-nav-link {
    display: none!important;
}

@media (max-width: 1200px) {
    .header-cta {
        display: none!important;
    }

    .contact-nav-link,
    .login-nav-link {
        display: block!important;
    }
}

.contact-nav-link {
    background-color: var(--secondary);
    margin-top: 1rem!important;
}

.contact-nav-link:hover {
    background-color: var(--secondary-hover);
}

.contact-nav-link a {
    text-align: center;
    color: var(--primary)!important;
    justify-content: center!important;
    font-size: var(--text-m)!important;
}

/* Home Hero */

.background-video {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    opacity: 0.7;
}

.background-video-content {
    position: relative;
    z-index: 1;
}

video[poster] {
    object-fit: cover;
    width: 100%;
    height: 100%;
}

/* Portfolio */

.mobile-tabs select {
    width: 100%;
}

/* Blog */

.wp-block-latest-posts__list {
    margin: 0;
    display: flex;
    flex-direction: column;
    row-gap: 1rem;
}

.wp-block-latest-posts__post-title {
    color: var(--text);
    text-decoration: none;
}

.wp-block-latest-posts__post-title:hover {
    color: var(--secondary);
    text-decoration: underline;
}

/* Reviews */

.ti-widget[data-layout-id='36'][data-set-id='drop-shadow'] .ti-controls .ti-next, .ti-widget[data-layout-id='36'][data-set-id='drop-shadow'] .ti-controls .ti-prev {
    background-color: transparent!important;
    outline-color: var(--secondary)!important;
}

body .testimonials .ti-widget[data-layout-id='36'][data-set-id='drop-shadow'] .ti-controls .ti-next:hover, body .testimonials .ti-widget[data-layout-id='36'][data-set-id='drop-shadow'] .ti-controls .ti-prev:hover {
    cursor: pointer;
    background-color: transparent!important;
    outline-color: var(--secondary-hover)!important;
}

.testimonials .ti-widget[data-layout-id='36'][data-set-id='drop-shadow'][data-pid='aace58b517901748bf962852aa9'] .ti-controls .ti-next:hover:before, .testimonials .ti-widget[data-layout-id='36'][data-set-id='drop-shadow'][data-pid='aace58b517901748bf962852aa9'] .ti-controls .ti-prev:hover:before {
    border-color: var(--secondary-hover)!important;
}

body .testimonials .ti-widget[data-layout-id='16'][data-set-id='drop-shadow'][data-pid='3ba137d52a314121a8465ba30e8'] .ti-load-more-reviews-container .ti-load-more-reviews-button {
    background: var(--secondary)!important;
    background-color: var(--secondary)!important;
    color: var(--primary)!important;
    font-family: var(--primary-font)!important;
    font-weight: 400!important;
    min-width: 190px!important;
    text-align: center!important;
    text-transform: uppercase!important;
    border-radius: 0px!important;
    padding: 0.75em 1.75em!important;
}

body .testimonials .ti-widget[data-layout-id='16'][data-set-id='drop-shadow'][data-pid='3ba137d52a314121a8465ba30e8'] .ti-load-more-reviews-container .ti-load-more-reviews-button:hover {
    background: var(--secondary-hover)!important;
    background-color: var(--secondary-hover)!important;
}

/* Accordions */

.gb-loop-item:last-child .gb-accordion__item {
    margin-bottom: 0;
    padding-bottom: 0;
}

/* Developments */

.development-map {
    position: relative;
    width: 100%;
    aspect-ratio: 2/1;
}

@media (max-width: 767px) {
    .development-map {
        aspect-ratio: 1/1;
    }
}

/* Services List */

.services-list .gb-headline {
    display: flex;
    align-items: center;
    position: relative;
}

.services-list .gb-icon {
    position: relative;
    z-index: 2;
}

.services-list .gb-icon::before {
    content: "";
    position: absolute;
    top: 0.6em;
    bottom: -25px;
    left: calc(50% - 0.5px);
    width: 1px;
    background-color: var(--secondary);
    z-index: 1;
}

.services-list .gb-headline:last-child .gb-icon::before {
    bottom: 0;
}

.services-list .gb-icon::after {
    content: "";
    position: absolute;
    top: -25px;
    bottom: 0.6em;
    left: calc(50% - 0.5px);
    width: 1px;
    background-color: var(--secondary);
    z-index: 1;
}

.services-list .gb-headline:first-child .gb-icon::after {
    top: 0;
}

/* Mosaic Grid */

@media (max-width: 1250px) and (min-width: 1025px) {
    .mosaic-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr))!important;
    }
    .mosaic-card-1,
    .mosaic-card-2,
    .mosaic-card-3, 
    .mosaic-card-4 {
        grid-column: span 1!important;
        grid-row: span 2!important;
        aspect-ratio: 398/812!important;
    }
}

/* Pop Ups */

.pum-container.pum-responsive [class*="gb-element"] img {
    height: 100% !important;
  }

/* Gravity Forms */

.gform_wrapper.gravity-theme input[type=color], 
.gform_wrapper.gravity-theme input[type=date], 
.gform_wrapper.gravity-theme input[type=datetime-local], 
.gform_wrapper.gravity-theme input[type=datetime], 
.gform_wrapper.gravity-theme input[type=email], 
.gform_wrapper.gravity-theme input[type=month], 
.gform_wrapper.gravity-theme input[type=number], 
.gform_wrapper.gravity-theme input[type=password], 
.gform_wrapper.gravity-theme input[type=search], 
.gform_wrapper.gravity-theme input[type=tel], 
.gform_wrapper.gravity-theme input[type=text], 
.gform_wrapper.gravity-theme input[type=time], 
.gform_wrapper.gravity-theme input[type=url], 
.gform_wrapper.gravity-theme input[type=week], 
.gform_wrapper.gravity-theme select, 
.gform_wrapper.gravity-theme textarea {
    border-radius: 0px!important;
    border-color: var(--white)!important;
    color: var(--white)!important;
    background-color: transparent!important;
}

.gform_wrapper.gravity-theme input[type=email]::placeholder,
.gform_wrapper.gravity-theme input[type=text]::placeholder,
.gform_wrapper.gravity-theme textarea::placeholder,
.gform_wrapper.gravity-theme input[type=tel]::placeholder,
.gform_wrapper.gravity-theme input[type=url]::placeholder {
    color: rgba(255, 255, 255, 0.5)!important;
}

.gform_wrapper.gravity-theme input[type=color]:focus, 
.gform_wrapper.gravity-theme input[type=date]:focus, 
.gform_wrapper.gravity-theme input[type=datetime-local]:focus, 
.gform_wrapper.gravity-theme input[type=datetime]:focus, 
.gform_wrapper.gravity-theme input[type=email]:focus, 
.gform_wrapper.gravity-theme input[type=month]:focus, 
.gform_wrapper.gravity-theme input[type=number]:focus, 
.gform_wrapper.gravity-theme input[type=password]:focus, 
.gform_wrapper.gravity-theme input[type=search]:focus, 
.gform_wrapper.gravity-theme input[type=tel]:focus, 
.gform_wrapper.gravity-theme input[type=text]:focus, 
.gform_wrapper.gravity-theme input[type=time]:focus, 
.gform_wrapper.gravity-theme input[type=url]:focus, 
.gform_wrapper.gravity-theme input[type=week]:focus, 
.gform_wrapper.gravity-theme select:focus, 
.gform_wrapper.gravity-theme textarea:focus {
    outline: 1px solid var(--white);
}

.gform_wrapper.gravity-theme label,
.gform_wrapper.gravity-theme .gfield_label {
    color: var(--white)!important;
}

.gform_wrapper.gravity-theme .gsection_title {
    color: var(--secondary)!important;
    margin-top: 2rem!important;
}

body .gform_wrapper .gfield_select {
    background-color: var(--primary)!important;
}  

.gform_wrapper.gravity-theme .gfield select {
    background-color: var(--primary)!important;
}

@media (min-width: 641px) {
    .gform_wrapper.gravity-theme .ginput_complex:not(.ginput_container_address) fieldset:not([style*="display:none"]):not(.ginput_full), .gform_wrapper.gravity-theme .ginput_complex:not(.ginput_container_address) span:not([style*="display:none"]):not(.ginput_full) {
        padding-right: 0!important;
    }
}

#gform_wrapper_1 .gform_footer,
#gform_wrapper_2 .gform_footer,
#gform_wrapper_4 .gform_footer,
#gform_wrapper_6 .gform_footer,
#gform_wrapper_8 .gform_footer,
#gform_wrapper_9 .gform_footer,
#gform_wrapper_10 .gform_footer,
#gform_wrapper_11 .gform_footer  { 
    visibility: hidden; 
    position: absolute; 
    left: -100vw; 
}

@media (max-width: 768px) {
    div#input_9_84 {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
    }
}
