/*
Theme Name: UDesign Child
Theme URI: https://d-themes.com/wordpress/udesign/envato-market/
Author: Andon
Author URI: https://1.envato.market/OdObz
Description: A slick, powerful and clean theme UDesign provides an intuitive set of options to help you setup your WordPress site quickly and effectively. Flexibility is key and it has been optimized for SEO and speed. It is also responsive & mobile ready should you choose that option. The UDesign theme features include: unlimited colors, widgetized home page, over 600 fonts to choose from, WooCommerce Integration, it is also translation and multilingual ready, step by step documentation, exclusive UDesign support forum and a helpful community. Always up-to-date security and many new features are constantly added as the theme evolves.
Version: 1.0
Template: u-design
License: GNU General Public License v2 and ThemeForest license
License URI: http://themeforest.net/licenses/regular_extended
Tags: woocommerce, corporate, responsive, one-column, two-columns, three-columns, four-columns, full-width-template, left-sidebar, right-sidebar, custom-menu, custom-background, custom-colors, custom-header, custom-logo, featured-images, flexible-header, microformats, post-formats, rtl-language-support, theme-options, translation-ready, accessibility-ready

*/

/*--------------------------
*           Index          *
----------------------------
* 1. Global                *
*    1.1 Custom Properties *
*    1.2 Universal         *
*    1.3 Header            *
*    1.4 Footer            *
*    1.5 Sidebar           *
* 2. Home-page             *
* 3. Sub-page              *
* 4. Responsive            *
* 5. Keyframes             *
--------------------------*/

/*--------------------------
*        1. Global         *
--------------------------*/

/* 1.1 Custom Properties */
:root {
    --color-brand: #d61e1c;
    --color-brand-rgba: 214, 30, 28;
    --color-brand-two: #1c2c4f;
    --color-brand-two-rgba: 28, 44, 79;
    --color-black: #222222;
    --color-black-rgba: 34, 34, 34;
    --color-white: #fff;
    --color-white-rgba: 255, 255, 255;
}

/* 1.2 Universal */
p {
    text-wrap: pretty;
}

/* Don't let phone number links wrap */
a[href^="tel:"],
a[href^="tel+"] {
    white-space: nowrap;
}

/* Hidden Links */
a.hide-link,
a.hide-link:hover {
    color: inherit !important;
    text-decoration: none !important;
    font-weight: inherit !important;
    cursor: text !important;
}

/* Remove default appearance for iOS/Safari forms */
input:matches([type="button"],
[type="submit"],
[type="reset"]) {
    -webkit-appearance: none !important;
}

html body .mfp-wrap {
    -webkit-backdrop-filter: blur(15px);
    backdrop-filter: blur(15px);
}

html body .mfp-wrap button.mfp-close {
    top: -40px;
    right: 0;
    bottom: auto;
    left: auto;
    width: 24px;
    height: 24px;
    -webkit-transform: rotateZ(0deg);
    -ms-transform: rotate(0deg);
    transform: rotateZ(0deg);
    -webkit-transform-origin: center center;
    -ms-transform-origin: center center;
    transform-origin: center center;
    line-height: 0;
}

html body .mfp-wrap button.mfp-close:hover {
    -webkit-transform: rotateZ(0deg) scale(1.05);
    -ms-transform: rotate(0deg) scale(1.05);
    transform: rotateZ(0deg) scale(1.05);
}

html body .mfp-wrap.mfp-gallery button.mfp-close {
    width: 48px;
    height: 48px;
    position: fixed;
    top: 0;
    right: 0;
    color: var(--color-white);
    font-size: 48px;
}

html body .mfp-wrap button.mfp-close:before,
html body .mfp-wrap button.mfp-close:after {
    display: none;
}

html body .mfp-wrap .mfp-iframe-scaler {
    overflow: visible;
}

html body.mfp-zoom-out-cur,
html body.mfp-zoom-out-cur .mfp-image-holder .mfp-close {
    cursor: default;
}

html body.testimonials:has(section.elementor-element.elementor-hidden-desktop.elementor-hidden-laptop.elementor-hidden-tablet_extra.elementor-hidden-tablet.elementor-hidden-mobile) section.wtp_about-intro.wtp_text-testimonials {
    margin-top: -70px;
}

html body #main .wtp_about-intro .elementor-widget-divider > .elementor-widget-container {
    margin-right: 15px !important;
}

html body .wtp_testimonials .elementor-widget-image a,
html body .wtp_services .elementor-widget-image a {
    display: block;
    overflow: hidden;
}

html body .wtp_testimonials .elementor-widget-image a img,
html body .wtp_services .elementor-widget-image a img {
    -webkit-transition: all 1s !important;
    -o-transition: all 1s !important;
    transition: all 1s !important;
    opacity: 1 !important;
}

html body .wtp_testimonials .elementor-widget-image a:hover img,
html body .wtp_services .elementor-widget-image a:hover img {
    -webkit-transform: scale(1.1);
    -ms-transform: scale(1.1);
    transform: scale(1.1);
}

html body .wtp_services .elementor-column .elementor-widget-wrap.elementor-element-populated {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
}

html body .wtp_services .elementor-column .elementor-widget-wrap.elementor-element-populated .elementor-widget-text-editor {
    -webkit-box-flex: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}

html body .wtp_services .elementor-column img {
    border-radius: 3px 3px 0 0;
}

html body .wtp_services .elementor-column .elementor-widget-wrap.elementor-element-populated .elementor-widget-text-editor .elementor-widget-container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    background-color: rgba(var(--color-white-rgba), 95%);
    padding-right: 20px;
    padding-left: 20px;
    border-radius: 0 0 3px 3px;
}

html body .wtp_services .elementor-column .elementor-widget-wrap.elementor-element-populated .elementor-widget-text-editor .elementor-widget-container h3 {
    margin-bottom: 6px !important;
    text-wrap: balance;
}

html body .wtp_services .elementor-column .elementor-widget-wrap.elementor-element-populated .elementor-widget-text-editor .elementor-widget-container p:first-of-type {
    -webkit-box-flex: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
    color: var(--color-brand-two);
}

html body .wtp_services .elementor-column .elementor-widget-wrap.elementor-element-populated .elementor-widget-text-editor .elementor-widget-container a.btn-link {
    --alpha-btn-color: var(--color-brand-two);
    --alpha-btn-hover-color: var(--color-brand-two);
    --alpha-btn-actve-color: var(--color-brand-two);
}

html body .wtp_testimonials .elementor-inner-column .elementor-widget-wrap.elementor-element-populated {
    padding: 0;
    overflow: hidden;
    margin: .5em;
}

html body .wtp_testimonials .elementor-inner-column .elementor-element.elementor-widget-text-editor {
    width: calc(100% - 40px);
    position: absolute;
    bottom: 20px;
    left: calc(100% - 61.5px);
    background-color: rgb(255 255 255 / 90%);
    -webkit-backdrop-filter: blur(15px);
    backdrop-filter: blur(15px);
    opacity: 1;
    pointer-events: none;
    -webkit-transition: all 0.3s;
    -o-transition: all 0.3s;
    transition: all 0.3s;
}

html body .wtp_testimonials .elementor-inner-column:hover .elementor-element.elementor-widget-text-editor {
    left: 20px;
    opacity: 1;
}

html body .wtp_testimonials .elementor-inner-column .elementor-element.elementor-widget-text-editor:before {
    content: '';
    display: block;
    width: 48px;
    height: 48px;
    background-image: url(/wp-content/uploads/2024/05/play-icon.png);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;
    position: absolute;
    bottom: 7px;
    left: 7px;
    z-index: 9;
    pointer-events: none;
    -webkit-filter: invert(1);
    filter: invert(1);
    -webkit-transition: all 0.3s;
    -o-transition: all 0.3s;
    transition: all 0.3s;
}

html body .wtp_testimonials .elementor-inner-column .elementor-element.elementor-widget-text-editor p {
    margin-bottom: 0;
    padding-left: 56px;
    text-align: right;
}

/*html body .wtp_testimonials a:before {*/
/*    content: '';*/
/*    display: block;*/
/*    width: 48px;*/
/*    height: 48px;*/
/*    background-image: url(/wp-content/uploads/2024/05/play-icon.png);*/
/*    background-position: center center;*/
/*    background-repeat: no-repeat;*/
/*    background-size: contain;*/
/*    position: absolute;*/
/*    bottom: 16px;*/
/*    left: 18px;*/
/*    z-index: 9;*/
/*    pointer-events: none;*/
/*    transition: all 0.3s;*/
/*}*/

/*html body .wtp_testimonials .elementor-inner-column:hover a:before {*/
/*    filter: invert(1);*/
/*}*/

html body .wtp_testimonials a:after {
    content: '';
    display: block;
    position: absolute;
    top: 66%;
    right: 0;
    bottom: 0;
    left: 0;
    background: -o-linear-gradient(bottom, rgb(0 0 0 / 20%), rgb(0 0 0 / 0%));
    background: -webkit-gradient(linear, left bottom, left top, from(rgb(0 0 0 / 20%)), to(rgb(0 0 0 / 0%)));
    background: linear-gradient(to top, rgb(0 0 0 / 20%), rgb(0 0 0 / 0%));
    z-index: 0;
    pointer-events: none;
}

html body .testimonial-boxed {
    -webkit-box-shadow: 0 5px 20px rgba(0, 0, 0, 0.15);
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.15);
    border-radius: 3px;
}

html body main#main .btn-underline {
    display: table;
    position: relative;
}

html body main#main .btn-underline:after {
    border-bottom-width: 2px;
    -webkit-transform-origin: left;
    -ms-transform-origin: left;
    transform-origin: left;
    margin-left: 0;
    width: calc(100% - 32px);
}

html body .wtp_white p a:not(.btn-underline),
html body .wtp_white li a:not(.btn-underline),
html body .wtp_banner-section:first-child p a:not(.btn-underline) {
    color: var(--color-white);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 1px;
    -webkit-transition: text-underline-offset 0.2s;
    -o-transition: text-underline-offset 0.2s;
    transition: text-underline-offset 0.2s;
}

html body .wtp_white p a:not(.btn-underline):hover,
html body .wtp_white li a:not(.btn-underline):hover,
html body .wtp_banner-section:first-child p a:not(.btn-underline):hover {
    text-underline-offset: 3px;
}

html body header#header .sticky-content-wrapper .fix-top {
    -webkit-box-shadow: 0 0 50px black;
    box-shadow: 0 0 50px black;
    z-index: 9;
}

html body header#header a.logo img,
html body footer#footer a.logo img {
    -webkit-transition: all 0.2s;
    -o-transition: all 0.2s;
    transition: all 0.2s;
}

html body header#header a.logo:hover img,
html body footer#footer a.logo:hover img {
    -webkit-transform: scale(1.05);
    -ms-transform: scale(1.05);
    transform: scale(1.05);
}

html body main#main .duplex-wrap span {
    width: 90vw;
    white-space: nowrap;
}

html body.gallery {
    margin-top: 0;
}

html body:not(.home) .page-wrapper {
    width: 100%;
}

html body .wtp_highlight {
    padding: 1.2em;
    border-radius: 3px;
    background-color: #f2f2f2;
    margin: 1em 0;
}

html body .gform_wrapper.gravity-theme .gfield input,
html body .gform_wrapper.gravity-theme .gfield select,
html body .gform_wrapper.gravity-theme .gfield textarea {
    background-color: var(--color-white);
    border-radius: 3px;
}

html body .gform_wrapper.gravity-theme input[type=submit] {
    border-radius: 3px;
    border: transparent;
}

html body .gform_wrapper.gravity-theme input[type=submit]:hover,
html body .gform_wrapper.gravity-theme input[type=submit]:active,
html body .gform_wrapper.gravity-theme input[type=submit]:focus {
    background-color: var(--e-global-color-secondary);
    border: transparent;
}

html body .gform_ajax_spinner {
    max-width: 1em;
    height: 1em;
    width: 1em;
}

html body .gform_confirmation_message {
    text-align: center;
    color: var(--color-white);
    border-radius: 3px;
    background-color: green;
    margin: 1em;
    padding: 1em;
}

html body .elementor-element.pmax_anchor-element.elementor-widget.elementor-widget-html {
    width: 0;
    height: 0;
    overflow: hidden;
    position: relative;
    top: -200px;
}

html body .elementor-element.elementor-widget-text-editor ul li,
html body .elementor-element.elementor-widget-text-editor ol li {
    margin-bottom: .5em;
}

html body .elementor-element.elementor-widget-text-editor h4 {
    font-size: 24px;
    line-height: 1.2;
}

html body .elementor-widget-text-editor a.pmax_btn,
html body .elementor-widget-toggle a.pmax_btn {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0;
    background-color: var(--e-global-color-primary);
    border-radius: 3px 3px 3px 3px;
    padding: 20px 41px 20px 41px;
    color: var(--color-white);
    -webkit-transition: all 0.2s;
    -o-transition: all 0.2s;
    transition: all 0.2s;
}

html body .elementor-widget-toggle a.pmax_btn {
    display: inline-block;
    margin-right: 1em;
}

html body.careers .elementor-widget-toggle p:last-of-type a[href*='tel'] {
    margin-left: .5em;
}

html body .elementor-widget-text-editor a.pmax_btn:hover,
html body .elementor-widget-toggle a.pmax_btn:hover {
    background-color: #323334;
}

html body .elementor-widget-toggle hr {
    margin: 1em 0;
    border-color: var(--color-black);
}

html body .elementor-widget-toggle .elementor-tab-title {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
    -ms-flex-direction: row-reverse;
    flex-direction: row-reverse;
    gap: 24px;
}

html body .elementor-widget-toggle .elementor-tab-title .elementor-toggle-icon {
    width: 48px;
    height: 48px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    background-color: #d4d4d4;
    border-radius: 999px;
}

html body .elementor-widget-toggle .elementor-tab-title .elementor-toggle-icon .elementor-toggle-icon-closed {
    position: relative;
    left: 4px;
    top: -6px;
}

html body .elementor-widget-toggle .elementor-tab-title .elementor-toggle-icon .elementor-toggle-icon-opened {
    position: relative;
    left: 1.5px;
    top: -.5px;
}

html body .elementor-widget-toggle .elementor-toggle-title {
    font-family: var(--alpha-heading-font-family),var(--alpha-body-font-family),sans-serif;
    font-weight: 900;
    color: var( --e-global-color-secondary );
    max-width: calc(100% - 72px);
}

html body .elementor-widget-toggle .elementor-toggle-title:hover {
    color: inherit !important;
}

html body .elementor-toggle .elementor-toggle-item {
    margin-bottom: 1em;
}

html body .elementor-toggle .elementor-tab-title .elementor-toggle-icon svg {
    width: 21px;
    height: 21px;
}

html body #main .elementor-widget-image.wtp_border img,
html body #main img.wtp_border {
    border: 10px solid transparent;
    -o-border-image: url(/wp-content/uploads/2025/11/asphalt-border.png) 12 round;
    border-image: url(/wp-content/uploads/2025/11/asphalt-border.png) 12 round;
}

html body #main .social-icon.boxed {
    -webkit-box-shadow: none;
    box-shadow: none;
}

html body #main .wtp_sticky {
    position: sticky;
    top: 150px;
}

/* 1.3 Header */
html body header#header .logo img {
    position: relative;
    left: -9%;
}

html body header#header nav > ul > li.menu-item-has-children > ul > li > a {
    padding-right: 2.5rem;
}

html body header#header nav > ul > li.menu-item-has-children > ul > li.menu-item-has-children > ul {
    top: -21px;
}

html body header#header nav.main-menu > ul > li.current-menu-ancestor:not(:hover) > a,
html body header#header nav.main-menu > ul > li.current-menu-item:not(:hover) > a {
    color: var(--color-white);
}

html body header#header .wtp_secondary-header {
    z-index: 99;
}

html body header#header .social-icons a[href*=tiktok] i:before {
    content: '\e07b';
}

/* 1.4 Footer */
html body .cs-footer {
    background-color: var(--color-black) !important;
}

html body footer#footer {
    background-color: var(--color-black);
}

html body footer#footer iframe {
    border-radius: 3px;
}

html body:not(.home) footer#footer .wtp_city-page-links {
    display: none;
}

html body footer#footer .wtp_city-page-links ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: -ms-grid;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

html body footer#footer .wtp_copyright p {
    margin-bottom: 0;
}

html body.home footer#footer .wtp_copyright p {
    text-align: right;
}

/* 1.5 Sidebar */


/*------------------------
*      2. Home-page      *
-------------------------*/
html body main#main {
    padding-top: 0;
    padding-bottom: 0;
    background-color: var(--color-black);
}

html body .wtp_banner-section > .elementor-container {
    z-index: 1;
}

html body .wtp_banner-section .duplex-wrap.t-c {
    -webkit-transform: none !important;
    -ms-transform: none !important;
    transform: none !important;
}

html body .wtp_hero-col {
    aspect-ratio: 16/9;
}

html body .wtp_hero-col * {
    height: 100%;
}

html body .wtp_hero-col video {
    -o-object-fit: cover;
    object-fit: cover;
}

html body .wtp_hero-col a.yt--popper {
    display: block;
    overflow: hidden;
}

html body .wtp_hero-col a.yt--popper:after {
    content: '';
    display: block;
    width: 68px;
    height: 68px;
    background-image: url(/wp-content/uploads/2025/12/asphalt-contractor-in-michigan.png);
    position: absolute;
    bottom: 30px;
    right: 30px;
    background-size: 49px;
    background-position: center;
    background-repeat: no-repeat;
    background-color: rgba(var(--color-brand-rgba), .75);
    border-radius: 999px;
    padding: 4px;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    -webkit-transform-origin: center;
    -ms-transform-origin: center;
    transform-origin: center;
    -webkit-transition: background-color .5s, -webkit-transform .5s;
    transition: background-color .5s, -webkit-transform .5s;
    -o-transition: transform .5s, background-color .5s;
    transition: transform .5s, background-color .5s;
    transition: transform .5s, background-color .5s, -webkit-transform .5s;
}

html body .wtp_hero-col a.yt--popper:hover:after {
    -webkit-transform: scale(1.075);
    -ms-transform: scale(1.075);
    transform: scale(1.075);
    background-color: rgba(var(--color-brand-rgba), 1);
}

html body .wtp_hero-col a.yt--popper img {
    -webkit-transition: -webkit-transform 1s;
    transition: -webkit-transform 1s;
    -o-transition: transform 1s;
    transition: transform 1s;
    transition: transform 1s, -webkit-transform 1s;
}

html body .wtp_hero-col a.yt--popper:hover img {
    -webkit-transform: scale(1.05);
    -ms-transform: scale(1.05);
    transform: scale(1.05);
}

html body .wtp_hero-text-col hr {
    width: 60%;
    border-color: var(--color-brand);
    opacity: 0.8;
    margin: 0 auto 56px 0;
    border-width: 5px;
}

html body .yt--popper .btn,
html body .yt--popper .btn i {
    -webkit-transition: all 0.3s;
    -o-transition: all 0.3s;
    transition: all 0.3s;
}

html body .btn {
    -webkit-transition: all .5s;
    -o-transition: all .5s;
    transition: all .5s;
}

html body .btn:hover {
    -webkit-transform: scale(1.05);
    -ms-transform: scale(1.05);
    transform: scale(1.05);
}

html body .btn:hover i {
    -webkit-transform: scale(1.1);
    -ms-transform: scale(1.1);
    transform: scale(1.1);
}

html body .wtp_glow .btn {
    position: relative;
}

html body .wtp_glow .btn:after {
    content: '';
    display: block;
    width: calc(100% + 6px);
    height: calc(100% + 6px);
    background-color: var(--color-brand);
    position: absolute;
    border-radius: 5px;
    -webkit-filter: blur(10px);
    filter: blur(10px);
    opacity: .5;
    top: -3px;
    left: -3px;
    z-index: -1;
    -webkit-transition: border-radius 1s, -webkit-transform 1s;
    transition: border-radius 1s, -webkit-transform 1s;
    -o-transition: transform 1s, border-radius 1s;
    transition: transform 1s, border-radius 1s;
    transition: transform 1s, border-radius 1s, -webkit-transform 1s;
    -webkit-animation: wtp-glow 5s infinite;
    animation: wtp-glow 5s infinite;
}

html body .wtp_glow .btn:hover:after {
    -webkit-animation-play-state: paused;
    animation-play-state: paused;
}

@-webkit-keyframes wtp-glow {
    0% {
        -webkit-transform: scale(1);
        transform: scale(1);
        border-radius: 10px;
    }

    50% {
        -webkit-transform: scale(1.1);
        transform: scale(1.1);
        border-radius: 20px;
    }

    100% {
        -webkit-transform: scale(1);
        transform: scale(1);
        border-radius: 10px;
    }
}

@keyframes wtp-glow {
    0% {
        -webkit-transform: scale(1);
        transform: scale(1);
        border-radius: 10px;
    }

    50% {
        -webkit-transform: scale(1.1);
        transform: scale(1.1);
        border-radius: 20px;
    }

    100% {
        -webkit-transform: scale(1);
        transform: scale(1);
        border-radius: 10px;
    }
}

html body .wtp_banner-section p.caption {
    font-size: 21px;
    text-transform: uppercase;
    margin-bottom: 1em;
}

html body .wtp_banner-section h1 {
    color: var(--color-white);
    margin-top: 0;
    margin-bottom: 18px;
    letter-spacing: .05em;
    font-size: clamp(56px, 3.25vw, 72px);
}

html body .elementor-widget-udesign_widget_posts .post-cats,
html body .elementor-widget-udesign_widget_posts .post-meta,
html body .elementor-widget-udesign_widget_posts .post-date {
    display: none;
}

html body .elementor-widget-udesign_widget_posts .post-title {
    font-family: var(--alpha-heading-font-family), var(--alpha-body-font-family), sans-serif;
    font-weight: var(--alpha-heading-font-weight, 600);
    line-height: var(--alpha-heading-line-height, var(--alpha-body-line-height));
    letter-spacing: var(--alpha-heading-letter-spacing, var(--alpha-body-letter-spacing));
    text-transform: var(--alpha-heading-text-transform, var(--alpha-body-text-transform));
    font-size: var(--alpha-h3-font-size, 2.8rem);
    margin-top: .45em;
}

html body .elementor-widget-udesign_widget_posts article {
    height: 100%;
    border-radius: 3px;
    overflow: hidden;
}

html body .elementor-widget-udesign_widget_posts article .post-media a {
    position: relative;
    overflow: hidden;
    aspect-ratio: 3 / 2;
    display: block;
}

html body .elementor-widget-udesign_widget_posts article .post-media a img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: center;
    object-position: center;
}

html body .elementor-widget-udesign_widget_posts .post-content p {
    line-height: 1.4;
}

html body .wtp_main-content_home h2 {
    text-wrap: balance;
}

html body .wtp_main-content_home .img-col .elementor-element.elementor-widget-image,
html body .wtp_main-content_home .img-col .elementor-element.elementor-widget-image .elementor-widget-container {
    height: 100%;
}

html body .wtp_main-content_home .img-col .elementor-element.elementor-widget-image .elementor-widget-container img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: center;
    object-position: center;
    -webkit-box-shadow: 0 0 30px rgba(var(--color-black-rgba), 45%);
    box-shadow: 0 0 30px rgba(var(--color-black-rgba), 45%);
    border-radius: 3px 0 0 3px;
}

html body .wtp_main-content_home.two .img-col .elementor-element.elementor-widget-image .elementor-widget-container img {
    border-radius: 0 3px 3px 0;
}

html body.single #main .wp-block-separator {
    width: 100%;
    opacity: 1;
    border-bottom: 1px solid black;
    margin-bottom: 1em;
}

html body.single #main .wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image) picture,
html body.single #main .wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figure picture {
    width: 100%;
    height: 100%;
}

/* v2 banner */
html body:has(.wtp_banner-v2) header#header {
    position: absolute;
    width: 100%;
}

html body section.wtp_banner-v2 {
    height: 100svh;
}

html body section.wtp_banner-v2 > .elementor-container {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
}

html body section.wtp_banner-v2 > .elementor-container > .elementor-column {
    width: 100%;
}

html body section.wtp_banner-v2 > .elementor-container > .elementor-column:not(.wtp_overlay),
html body section.wtp_banner-v2 > .elementor-container > .elementor-column:not(.wtp_overlay) * {
    width: 100%;
    height: 100%;
}

html body section.wtp_banner-v2 > .elementor-container > .elementor-column:not(.wtp_overlay) {
    position: absolute;
}

html body section.wtp_banner-v2 > .elementor-container > .elementor-column:not(.wtp_overlay):after {
    content: '';
    display: block;
    position: absolute;
    width: 100%;
    height: 100%;
    background: -o-linear-gradient(bottom, rgb(0 0 0 / 60%), transparent 60%);
    background: -webkit-gradient(linear, left bottom, left top, from(rgb(0 0 0 / 60%)), color-stop(60%, transparent));
    background: linear-gradient(to top, rgb(0 0 0 / 60%), transparent 60%);
}

html body section.wtp_banner-v2 > .elementor-container > .elementor-column.wtp_overlay {
    position: absolute;
    bottom: max(4dvw, 60px);
}

html body section.wtp_banner-v2 > .elementor-container > .elementor-column.wtp_overlay img {
    width: 100%;
    height: auto;
    max-width: 920px;
}

html body section.wtp_banner-v2 > .elementor-container > .elementor-column.wtp_overlay hr {
    max-width: 52rem;
    margin: 0 auto 40px auto;
}
/* end v2 banner */


/*------------------------
*      3. Sub-page       *
------------------------*/
html body:not(.home) .wtp_banner-section:not(.city-page) h1 {
    font-size: clamp(48px, 3.25vw, 72px);
    /*text-align: center;*/
    text-wrap: balance;
}

html body:not(.home) h1,
html body:not(.home) h2,
html body:not(.home) h3,
html body:not(.home) h4,
html body:not(.home) h5,
html body:not(.home) h6 {
    text-wrap: balance;
}

html body:not(.home).about-us .wtp_banner-section h1 {
    font-size: clamp(72px, 5vw, 176px);
}

html body .wtp_contact-phone i {
    position: relative;
    top: 6px;
}

html body .wtp_img-cover .elementor-widget-image > .elementor-widget-container {
    position: relative;
}

html body .wtp_img-cover .elementor-widget-image > .elementor-widget-container img {
    position: absolute;
    left: 0;
}

html body .wtp_area-buttons .elementor-column > .elementor-widget-wrap {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: 1fr 1em 1fr 1em 1fr 1em 1fr;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    gap: 1em;
}

html body .wtp_area-buttons .elementor-column > .elementor-widget-wrap .elementor-widget-button {
    margin: 0 !important;
}

html body .wtp_area-buttons .elementor-column > .elementor-widget-wrap .elementor-widget-button .elementor-widget-container {
    padding: 0 !important;
}

html body .wtp_area-buttons .elementor-column > .elementor-widget-wrap .elementor-widget-button .elementor-widget-container a {
    width: 100%;
}

html body.contact i {
    font-size: initial;
    vertical-align: initial;
    padding-right: initial;
    -webkit-transition: initial;
    -o-transition: initial;
    transition: initial;
}

html body .wtp_no-pad,
html body .wtp_no-pad .elementor-widget-wrap,
html body #wtp_no-pad.wtp_no-pad,
html body #wtp_no-pad.wtp_no-pad .elementor-widget-wrap {
    padding: 0;
}

html body section.elementor-section-full_width > .elementor-container.elementor-column-gap-default {
    max-width: 100%;
}

html body.single main#main {
    /*background-color: var(--color-white);*/
}

html body:not(.home).single .wtp_banner-section h1 {
    font-size: clamp(42px, 3vw, 56px);
}

html body .elementor-widget-udesign_widget_posts h3.post-title {
    -webkit-line-clamp: 99;
    font-size: 2.8rem;
    line-height: 1.2;
    letter-spacing: 0;
    text-wrap: pretty;
}

html body.blog .wtp_section > .elementor-container {
    width: 95vw;
}

html body #main ul.wtp_two-col {
    -webkit-column-count: 2;
    -moz-column-count: 2;
    column-count: 2;
}

html body #main .wtp_contact-map {
    min-width: calc(100% + 48px);
    max-width: calc(100% + 48px);
    position: relative;
    top: -24px;
    left: -24px;
}


/*------------------------
*      4. Responsive     *
------------------------*/
@media (min-width: 1921px) {
    html body main#main .elementor-section.elementor-element.elementor-top-section.cs6-half-banner {
        background-size: 66% auto;
    }
}

@media (max-width: 1920px) {
    html body main#main .wtp_intro {
        background-size: 75vw auto;
    }
}

@media (max-width: 1499px) {
    html body main#main .wtp_intro .wtp_intro {
        width: 54%;
    }

    html body main#main .wtp_intro .banner {
        min-height: 390px;
    }
}

@media (max-width: 1439px) {
    html body main#main .elementor-section.elementor-element.elementor-top-section.cs6-half-banner {
        background-image: none;
    }

    html body main#main .wtp_intro .wtp_intro {
        width: 100%;
    }

    html body main#main .wtp_image-cover .elementor-element.elementor-widget-image,
    html body main#main .wtp_image-cover .elementor-element.elementor-widget-image .elementor-widget-container {
        height: 100%;
    }

    html body main#main .wtp_image-cover .elementor-element.elementor-widget-image .elementor-widget-container img {
        -o-object-position: 73% top;
        object-position: 73% top;
    }

    html body.home .wtp_intro .banner .banner-content.t-mc,
    html body .wtp_intro.city-page .banner .banner-content.t-mc {
        top: 0;
        left: 0;
        -webkit-transform: none !important;
        -ms-transform: none !important;
        transform: none !important;
        position: relative;
        padding: 60px 10%;
        width: 100%;
        max-width: 100%;
    }
}

@media (max-width: 1329px) {
    html body header#header .elementor-widget-udesign_widget_contact > .elementor-widget-container {
        padding-left: 0;
    }
}

@media (max-width: 1279px) {
    html body header#header nav > ul > li {
        margin: 0;
    }

    html body .wtp_banner-section h1 {
        font-size: clamp(36px, 3vw, 64px);
    }

    html body .wtp_area-buttons .elementor-column > .elementor-widget-wrap {
        -ms-grid-columns: 1fr 1fr 1fr;
        grid-template-columns: 1fr 1fr 1fr;
    }

    @media (min-width: 768px) {
        html body section.elementor-section.wtp_services > .elementor-container {
            -ms-flex-wrap: wrap;
            flex-wrap: wrap;
        }

        html body section.elementor-section.wtp_services > .elementor-container > .elementor-column {
            width: 50%;
        }
    }
}

@media (max-width: 1199px) {
    @media (min-width: 992px) {
        html body .elementor-element.elementor-widget-udesign_widget_menu {
            position: relative;
            left: -3%;
        }

        html body .ch-contact .telephone {
            display: block;
        }

        html body header#header .logo img {
            max-width: 195px;
        }
    }
}

@media (max-width: 991px) {
    html body header#header .mobile-menu-toggle {
        color: var(--color-white);
        opacity: .9;
    }

    html body header#header .elementor-element.wtp_mobile-toggle.elementor-widget-udesign_header_mmenu_toggle {
        -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
        order: 3;
    }

    html body header#header .elementor-element.wtp_mobile-toggle.elementor-widget-udesign_header_mmenu_toggle .elementor-widget-container {
        margin-right: 0;
    }

    html body header#header .elementor-element.wtp_header-phone.elementor-widget-udesign_widget_contact {
        -webkit-box-flex: 1;
        -ms-flex-positive: 1;
        flex-grow: 1;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: end;
        -ms-flex-pack: end;
        justify-content: flex-end;
        margin-right: 1.5em;
    }

    html body header#header .elementor-element.wtp_header-phone.elementor-widget-udesign_widget_contact .telephone {
        display: inline-block;
        margin-left: .5em;
        position: relative;
        top: -1px;
        font-size: 20px;
        font-weight: 400;
    }

    html body .mobile-menu-wrapper .search-wrapper {
        display: none;
    }

    html body .mobile-menu-wrapper .nav-wrapper a {
        font-size: 16px;
        font-family: 'Roboto', sans-serif;
    }

    html body .mobile-menu-wrapper .nav-wrapper #menu-main-menu > li > a {
        text-transform: uppercase;
    }

    html body.mmenu-active .mobile-menu-overlay {
        -webkit-backdrop-filter: blur(25px);
        backdrop-filter: blur(25px);
        opacity: 1;
        background-color: rgb(0 0 0 / 50%);
    }

    html body .wtp_banner-section,
    html body .wtp_banner-section > .elementor-container {
        width: 100%;
        max-width: 100vw;
        overflow: hidden;
    }

    html body .wtp_hero-text-col hr {
        margin-left: auto;
    }

    html body:not(.home) .wtp_banner-section:first-of-type .wtp_hero-col.wtp_img-cover {
        aspect-ratio: 16/9;
    }

    html body .wtp_hero-col .video-foreground {
        aspect-ratio: 16 / 9;
        position: relative;
        padding-bottom: 0;
    }

    html body main#main .wtp_intro .banner {
        min-height: 0;
        padding: 30px 20px;
    }

    html body main#main .wtp_intro .banner .banner-content {
        position: relative;
        top: 0;
        left: 0;
        -webkit-transform: none !important;
        -ms-transform: none !important;
        transform: none !important;
    }

    html body:not(.home) .wtp_banner-section h1 {
        font-size: clamp(48px, 5vw, 72px);
    }

    html body .wtp_banner-section:not(:first-of-type) .wtp_img-cover .elementor-widget-image > .elementor-widget-container img {
        position: relative;
        -o-object-fit: cover;
        object-fit: cover;
        width: 100%;
        height: 100%;
        left: 0;
    }

    html body .wtp_fullwidth a {
        width: 100%;
    }

    html body .wtp_banner-section.wtp_reverse-mobile > .elementor-container {
        -webkit-box-orient: vertical;
        -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
        flex-direction: column-reverse;
    }

    html body .wtp_about-intro > .elementor-container {
        max-width: 100vw;
    }

    html body:not(.home) .wtp_banner-section:not(:first-child) .elementor-column.wtp_hero-col.wtp_img-cover {
        aspect-ratio: 3/2;
        overflow: hidden;
    }

    html body .wtp_main-content_home > .elementor-container > .elementor-column.elementor-col-50 {
        width: 100%;
    }

    html body h2 {
        font-size: 32px;
        line-height: 1.2;
    }

    html body .wtp_main-content_home .img-col .elementor-element.elementor-widget-image .elementor-widget-container img,
    html body .wtp_main-content_home.two .img-col .elementor-element.elementor-widget-image .elementor-widget-container img {
        border-radius: 0;
    }

    html body.home footer#footer .wtp_copyright p {
        text-align: left;
    }

    @media (min-width: 768px) {
        html body .wtp_intro h2 {
            font-size: 32px;
        }
    }
}

@media (max-width: 849px) {
    html body .wtp_area-buttons .elementor-column > .elementor-widget-wrap {
        -ms-grid-columns: 1fr 1fr;
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 767px) {
    html body header#header .wtp_header-social {
        display: inline-block;
    }

    html body .wtp_hero-col {
        aspect-ratio: 16/10;
    }

    html body main#main .elementor-element.wtp_intro.elementor-widget-udesign_widget_banner > .elementor-widget-container {
        padding-bottom: 0;
    }

    html body main#main .duplex-wrap {
        top: auto;
        bottom: 0;
    }

    html body main#main .duplex-wrap span {
        font-size: clamp(72px, 20vw, 120px);
    }

    html body .wtp_testimonials .elementor-inner-column .elementor-element.elementor-widget-text-editor {
        left: 20px;
        opacity: 1;
    }

    html body #main .wtp_about-intro section.elementor-inner-section,
    html body #main .wtp_about-intro section.elementor-inner-section > .elementor-container,
    html body #main .wtp_cta > .elementor-container {
        width: 100%;
    }

    html body #main .elementor-widget-toggle .elementor-toggle-title {
        font-size: clamp(16px, 5vw, 28px);
    }

    html body #main ul.wtp_two-col {
        -webkit-column-count: 2;
        -moz-column-count: 2;
        column-count: 2;
    }

    html body .wtp_hero-col a.yt--popper:after {
        width: 48px;
        height: 48px;
        bottom: 20px;
        right: 20px;
        background-size: 34px;
    }
}

@media (max-width: 599px) {
    html body .wtp_area-buttons .elementor-column > .elementor-widget-wrap {
        -ms-grid-columns: 1fr;
        grid-template-columns: 1fr;
    }
}

@media (max-width: 549px) {
    html body header#header .elementor-element.wtp_header-phone.elementor-widget-udesign_widget_contact .telephone {
        display: none;
    }

    html body .wtp_services h3 {
        font-size: 2.7rem;
    }

    html body h1,
    html body h2,
    html body h3,
    html body h4,
    html body h5,
    html body h6 {
        letter-spacing: 1px;
    }
}

@media (max-width: 399px) {
    html body header#header .logo img {
        width: 45vw;
        max-width: 175px;
    }

    html body main#main .duplex-wrap {
        display: none;
    }
}

@media (min-width: 550px) {
    html body header#header .elementor-widget-udesign_widget_contact > .elementor-widget-container .contact a i {
        display: none;
    }
}

@media (min-width: 768px) {
    html body .wtp_about-intro .elementor-section.elementor-inner-section.elementor-section-height-default .elementor-container.elementor-column-gap-wider > .elementor-column:nth-child(2) {
        -webkit-box-align: start;
        -ms-flex-align: start;
        align-items: flex-start;
    }
}

@media (min-width: 1440px) {
    html body.home .wtp_intro h2,
    html body .wtp_intro.city-page h2 {
        text-wrap: balance;
    }
}

@media (min-width: 1700px) {
    html body .wtp_about-intro .elementor-container.elementor-column-gap-wider {
        width: 1680px;
        max-width: calc(100vw - 12% - 24px);
        -webkit-column-gap: 5%;
        -moz-column-gap: 5%;
        column-gap: 5%;
    }
}


/*------------------------
*      5. Keyframes      *
-------------------------*/
/* Fade In */
@-webkit-keyframes fade-in {
    0% {
        opacity: 0;
    }

    33% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes fade-in {
    0% {
        opacity: 0;
    }

    33% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

/* Zoom In */
@-webkit-keyframes zoom-in {
    0% {
        -webkit-transform: scale(0) translate(0, 0);
        -ms-transform: scale(0) translate(0, 0);
        transform: scale(0) translate(0, 0);
        opacity: 0;
    }

    100% {
        -webkit-transform: scale(1) translate(0, 0);
        -ms-transform: scale(1) translate(0, 0);
        transform: scale(1) translate(0, 0);
        opacity: 1;
    }
}

@keyframes zoom-in {
    0% {
        -webkit-transform: scale(0) translate(0, 0);
        -ms-transform: scale(0) translate(0, 0);
        transform: scale(0) translate(0, 0);
        opacity: 0;
    }

    100% {
        -webkit-transform: scale(1) translate(0, 0);
        -ms-transform: scale(1) translate(0, 0);
        transform: scale(1) translate(0, 0);
        opacity: 1;
    }
}