@layer base,
utils,
extra;

@import url('_helpers.css') layer(utils);
@import url('_cf7.css');

@view-transition {
    navigation: auto;
}

@media (prefers-reduced-motion: reduce) {
    html:focus-within {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

:root {
    /* Colors */
    --primary-color: hsl(151, 91%, 22%);
    --primary: var(--primary-color);
    /*--primary-dark: hsl(151, 91%, 17%);*/
    --primary-dark: oklch(from hsl(151, 91%, 17%) calc(l - 0.05) c h);
    --secondary: hsl(54, 98%, 48%);
    --secondary-color: var(--secondary);
    /*--secondary-dark: hsl(54, 98%, 43%);*/
    --secondary-dark: oklch(from hsl(54, 98%, 48%) calc(l - 0.05) c h);
    --secondary-light: oklch(from hsl(54, 98%, 48%) calc(l + 0.05) c h);
    --secondary-lighter: oklch(from hsl(54, 98%, 48%) calc(l + 0.1) c h);
    --justhome-theme-hover-color: var(--secondary-dark) !important;
    --gray: #e8e8e8;
    --gray-dark: #c6c6c6;
    --gray-darker: #6a6a6a;
    --gray-light: #ededed;
    --gray-lighter: #f9f9f9;
    --light-gray: var(--gray-light);
    --dark-gray: var(--gray-dark);
    --base-font-size: 16px;
    --base-font-family: 'Figtree', sans-serif;
    /* Typography */
    --text-color: #000000;
    --text-12-14: clamp(12px, 10px + 0.3125vw, 14px);
    --text-12-16: clamp(12px, 11px + 0.3125vw, 16px);
    --text-14-18: clamp(14px, 12.75px + 0.39vw, 18px);
    --text-16-20: clamp(16px, 15px + 0.3125vw, 20px);
    --text-16-22: clamp(16px, 14.5px + 0.4688vw, 22px);
    --text-20-28: clamp(20px, 18px + 0.625vw, 28px);
    --text-24-32: clamp(24px, 22px + 0.625vw, 32px);
    --text-28-39: clamp(28px, 25px + 0.9375vw, 39px);
    --text-32-48: clamp(32px, 28px + 1.25vw, 48px);
    --text-38-56: clamp(38px, 33.5px + 1.4vw, 56px);
    --text-40-56: clamp(40px, 36px + 1.25vw, 56px);
    --text-31-47: clamp(31px, 27px + 1.25vw, 47px);
    --text-size: var(--text-14-18);
    --text-xs: var(--text-12-14);
    --text-sm: var(--text-12-16);
    --text-base: var(--text-size);
    --text-lg: var(--text-16-22);
    --text-xl: var(--text-24-32);
    --text-2xl: var(--text-31-47);
    --text-xxl: var(--text-2xl);
    --text-3xl: var(--text-40-56);
    --title-large: var(--text-31-47);
    --title-xlarge: var(--text-40-56);
    /* Line Heights */
    --leading-none: 1;
    --leading-tight: 1.25;
    --leading-snug: 1.375;
    --leading-normal: 1.5;
    --leading-relaxed: 1.625;
    --leading-loose: 2;
    /* Spacing */
    --spacer-15: clamp(10px, 8.75px + 0.3906vw, 15px);
    --spacer-25: clamp(15px, 12.5px + 0.7813vw, 25px);
    --spacer-50: clamp(25px, 18.75px + 1.9531vw, 50px);
    --spacer-65: clamp(30px, 24.375px + 2.5381vw, 65px);
    --spacer-100: clamp(50px, 37.5px + 3.9063vw, 100px);
    --spacer-150: clamp(75px, 56.25px + 5.8594vw, 150px);
    --space-1: var(--spacer-25);
    --space-2: var(--spacer-50);
    --space-3: var(--spacer-100);
    --space-4: var(--spacer-150);
    /* Border Radius */
    --radius-sm: 4px;
    --radius-lg: 9px;
    --radius-xl: 17px;
    --radius: var(--radius-lg);
    /* General */
    --container-width: 1580px;
    --container-inner-width: 1550px;
    --container-default-padding-left: 15px;
    --container-default-padding-right: 15px;
    /* Swiper */
    --swiper-theme-color: var(--primary-color) !important;
    --swiper-pagination-bullet-inactive-color: var(--gray);
    --swiper-pagination-bullet-inactive-opacity: 1;
    --swiper-pagination-bullet-horizontal-gap: 0.4rem;
    --swiper-pagination-bullet-width: 1.4rem;
    --swiper-pagination-bullet-height: 0.6rem;
    --swiper-pagination-bullet-border-radius: 5px;
    --swiper-pagination-bottom: 0;
    /* Breakpoints */
    --sm: 640px;
    --md: 768px;
    --lg: 1024px;
    --xl: 1280px;
    --xxl: 1536px;
    /* Alerts and icons colors */
    --success-color: var(--primary-color);
    --error-color: #c91d1d;
    --warning-color: var(--secondary);
}

/*
.e-con-full:has(.logo) {
	position: relative;
	&:before {
		height: 100vh;
		position: absolute;
		height: 25000px;
		left: 0;
		top: 0;
		content: '';
		width: 1px;
		background: purple;
		z-index: 9999;
	}
}*/

.sticky-top {
    top: 125px !important;
}

.rounded.e-con-boxed {
    border-radius: var(--radius-xl) !important;
}

span.select2-container--default .select2-dropdown {
    border-radius: var(--radius-lg) !important;
    border-color: var(--gray-dark) !important;
}

.elementor-video {
    border-radius: var(--radius-xl) !important;
}

.bg-gray {
    background-color: var(--gray-lighter) !important;
}

.m-0 {
    margin: 0 !important;
}

.mt-sm {
    margin-top: 1rem;
}

@media (width>767px) {
    .m-0 .e-con-inner {
        margin: 0 !important;
    }
}

@layer base {
    *:where(:not(html, iframe, canvas, img, svg, video, audio):not(svg *, symbol *)) {
        display: revert;
    }

    *,
    *::before,
    *::after {
        box-sizing: border-box;
    }

    * {
        transition-behavior: allow-discrete;
    }

    html {
        -moz-text-size-adjust: none;
        -webkit-text-size-adjust: none;
        text-size-adjust: none;
        scroll-padding-top: 250px;
        scroll-behavior: smooth;
    }

    a {
        color: var(--primary-color);
    }

    a,
    button {
        cursor: revert;
    }

    a[href^='tel'],
    a[href^='mailto'] {
        color: inherit;
        text-decoration: none;
    }

    .btn,
    button {
        width: fit-content;
        outline-color: transparent;
    }

    ol,
    ul,
    menu,
    summary {
        list-style: none;
    }

    img {
        max-inline-size: 100%;
        max-block-size: 100%;
    }

    table {
        border-collapse: collapse;
    }

    input,
    textarea {
        -webkit-user-select: auto;
        field-sizing: content;
        caret-color: var(--primary);
        caret-shape: bar;
    }

    textarea {
        white-space: revert;
    }

    meter {
        -webkit-appearance: revert;
        appearance: revert;
    }

    :where(pre) {
        all: revert;
        box-sizing: border-box;
    }

    ::placeholder {
        color: unset;
    }

    :where([hidden]) {
        display: none;
    }

    :where([contenteditable]:not([contenteditable='false'])) {
        -moz-user-modify: read-write;
        -webkit-user-modify: read-write;
        overflow-wrap: break-word;
        -webkit-line-break: after-white-space;
        -webkit-user-select: auto;
    }

    :where([draggable='true']) {
        -webkit-user-drag: element;
    }

    :where(dialog:modal) {
        all: revert;
        box-sizing: border-box;
    }

    ::-webkit-details-marker {
        display: none;
    }

    small {
        display: block;
        line-height: 1;
    }

    /* hover styles for devices that support hover */
    @media (hover: hover) {
        a:hover {}
    }

    /* styles for touchscreen devices */
    @media (hover: none) {}

    /* radio and checkbox alignment */
    label:has(input) {
        display: flex;
        align-items: center;
        gap: var(--spacer-s);
    }

    /* better textarea paddings and line height */
    textarea {
        --padding: var(--spacer-m);
        min-height: calc(2lh + 2 * var(--padding));
        max-height: calc(4lh + 2 * var(--padding));
        field-sizing: content;
        line-height: 1.5;
        padding: var(--padding);
        padding-inline: calc(var(--padding) + calc((1lh - 1ex) / 2));
    }

    /* avoid input zoom on iphone */
    @media screen and (-webkit-min-device-pixel-ratio: 0) {

        select,
        textarea,
        input {
            font-size: 16px;
        }
    }

    .container {
        width: min(90%, 800px);
    }

    .e-con > .e-con-inner:has(.container-inner),
    .container-inner {
        --content-width: 1550px;

        .e-con > .e-con-inner {
            max-width: max(100%, 1580px) !important;
        }
    }

    .ellipsis {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .box {
        display: grid;
        place-items: center;
    }

    h1,
    h2,
    h3,
    h4,
    h5,
    h6 {
        margin-block-start: 0;
        margin-block-end: 0;
        font-family: inherit;
        font-weight: 600;
        line-height: 1.2;
        color: inherit;
    }

    p {
        display: contents;
        max-width: 100ch;
    }

    .elementor-heading-title,
    [class^='title-'] {
        text-wrap: balance;
    }
}

/* ================================================================================ */

html {
    font-size: var(--base-font-size);
    font-family: var(--base-font-family);
}

body {
    accent-color: var(--primary-color);
    /*line-height: calc(1.6 * (100 / var(--base-font-size)));*/
    color: var(--text-color);
    overflow-x: hidden;
    scrollbar-gutter: stable both-edges;
    padding: 0 !important;

    &.past-top {}
}

p {
    font-size: var(--text-base);
    color: var(--text-color);
}

.mt- {
    margin-top: -1rem;
}

.mt-- {
    margin-top: -2.5rem;
}

.mt {
    margin-top: 2.5rem;
}

.page-template-default .container {
    width: min(100%, 1580px) !important;
    max-width: unset !important;

    @media (width<768px) {
        &#main-container {
            margin-bottom: 25px;
        }
    }

    @media (width>1024px) {
        &#main-container {
            margin-bottom: 100px;
        }
    }
}

.elementor-lightbox .elementor-lightbox-image,
.swiper-zoom-container img {
    border-radius: var(--radius-xl) !important;
}

/* MARK: Buttons
*/

.elementor-button {
    border-radius: var(--radius-lg);
    padding: 1.25em 1.5em;

    &,
    & .elementor-button-text {
        font-size: var(--text-base);
        font-weight: 700;
        text-transform: uppercase;
        text-decoration: none !important;
    }

    &:is(:hover, :active, :focus) {
        background-color: var(--primary-dark);
    }
}

.w-100 .elementor-button-wrapper > .elementor-button {
    width: 100%;
}

.btn:has(.elementor-button) {
    padding: 0 !important;
}

.btn {
    font-size: var(--text-16-22) !important;
    font-weight: 600 !important;
    color: var(--primary-color);
    text-transform: none;
    padding: 0.5rem clamp(0.5rem, -2.5rem + 12vw, 2rem) !important;
    max-width: 100%;

    svg,
    .elementor-button-icon .e-font-icon-svg {
        fill: var(--primary-color);
        height: 1em;
    }

    @media (width<=420px) {
        width: 100%;
    }
}

.btn.btn-secondary {
    font-size: var(--text-16-22) !important;
    font-weight: 600 !important;
    color: var(--primary-color);
    text-transform: none;
    padding: 0.5rem clamp(0.5rem, -2.5rem + 12vw, 2rem) !important;
    background: #fff;
    border: solid 2px var(--primary-color);
    border-radius: var(--radius) !important;

    &:is(:focus, :hover, :active) {
        background-color: var(--primary-dark) !important;
        color: #fff !important;
        border-color: var(--primary-dark) !important;

        svg,
        .elementor-button-icon .e-font-icon-svg {
            fill: #fff;
        }
    }
}

.btn.btn-link {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.btn .elementor-button {
    padding: 0.85rem clamp(0.5rem, -2.5rem + 12vw, 2rem);
    background-color: var(--secondary-color) !important;
    border-radius: var(--radius) !important;

    &,
    & .elementor-button-text {
        font-size: var(--text-16-22);
        font-weight: 600;
        color: var(--primary-color);

        text-transform: none;
    }

    &:is(:focus, :hover, :active) {
        background-color: var(--secondary-dark) !important;
    }
}

/*
.elementor-widget-container .elementor-button-wrapper .elementor-button {
    &:is(:focus, :hover, :active) {
        background-color: inherit !important;
    }
}*/

.btn:has(.elementor-button) {
    border: none;
}

.btn.btn-secondary .elementor-button {
    background-color: white !important;
    border: solid 2px var(--primary-color);

    &,
    & .elementor-button-text {
        color: var(--primary-color);

        text-transform: none;
    }

    &:is(:focus, :hover, :active) {
        background-color: var(--primary-dark) !important;
        color: #fff !important;
        border-color: var(--primary-dark) !important;

        .elementor-button-text {
            color: #fff !important;
        }
    }
}

.btn-theme .elementor-button {
    background: transparent !important;
}

.btn-theme:is(:focus, :hover, :active) {
    background-color: var(--secondary-dark) !important;

    .elementor-button {
        background: transparent !important;
    }
}

.btn-sm {
    padding: 0.25em 1.75em !important;
    font-size: var(--text-base) !important;
    font-weight: 550 !important;
}

@media (width>1400px) {
    .btn-wide {
        padding: 0.5em 2.5em !important;
        min-width: 15rem;
    }
}

    {
    .btn-wide {}
}

/*	--gray-darker: #6a6a6a;
	--gray-light: #ededed;
	*/
.btn.ns-btn-nav {
    color: var(--gray-darker);
    display: inline-flex;
    align-items: center;
    font-size: var(--text-14-18) !important;

    &.next {
        padding-right: 0 !important;
        padding-left: 0.5rem !important;

        &:after {
            content: '';
            display: inline-block;
            width: 2.5em;
            height: 2.5em;
            border-radius: 50%;
            background-color: var(--gray-light);
            margin-left: 0.5em;
            background-image: url("data:image/svg+xml,%3Csvg aria-hidden='true' class='e-font-icon-svg e-fas-chevron-right' viewBox='0 0 320 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23000' d='M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z'%3E%3C/path%3E%3C/svg%3E");
            background-repeat: no-repeat;
            background-position: center;
            background-size: 25%;
            transition: all 0.5s;
        }
    }

    &.prev {
        padding-left: 0 !important;
        padding-right: 0.5rem !important;

        &:before {
            content: '';
            margin-right: 0.5em;
            display: inline-block;
            width: 2.5em;
            height: 2.5em;
            border-radius: 50%;
            background-color: var(--gray-light);
            background-image: url("data:image/svg+xml,%3Csvg aria-hidden='true' viewBox='0 0 320 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23000' d='M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z'%3E%3C/path%3E%3C/svg%3E");
            background-repeat: no-repeat;
            background-position: center;
            background-size: 25%;
            transition: all 0.5s;
        }
    }

    &.disabled {
        opacity: 0.5;
        cursor: not-allowed;
        pointer-events: none;
    }

    &:is(:hover, :focus, :active) {
        color: #000;

        &:before,
        &:after {
            background-color: var(--gray-dark);
        }
    }
}

@media (width<768px) {
    .ns-prev-next-navigation {
        display: flex;
        flex-direction: row;

        .btn.ns-btn-nav {
            width: 50svw;

            &.next {
                justify-content: flex-end;
            }
        }
    }
}

@media (width<=320px) {
    .ns-prev-next-navigation {
        display: none;
    }
}

/* MARK: Titles
*/
.title-related-properties,
.title-big,
.title-large {

    &,
    & * {
        font-size: var(--title-large) !important;
        font-weight: 600 !important;
        line-height: 1.2em !important;
        text-wrap: balance;
    }
}

.title-bigger,
.title-xlarge,
.title-profile {

    &,
    & *,
    .detail-heading-title {
        font-size: var(--title-xlarge) !important;
        font-weight: 700 !important;
        line-height: 1.2em !important;
        text-wrap: balance;
        text-align: left;
    }
}

#apus-breadscrumb > div > div > div > div > h1,
.wrapper-breads .wrapper-breads-inner .breadscrumb-inner .bread-title,
.title-bigger .elementor-heading-title {
    font-size: var(--text-3xl);
    font-weight: 700 !important;
    /*margin-bottom: 1em;*/
}

.apus-breadscrumb.show-title .breadscrumb-inner {
    margin-bottom: 2rem;
}

.title-big .elementor-heading-title {
    font-size: var(--text-2xl);
    font-weight: 600;
    color: var(--primary);
    /*margin-bottom: 1em;*/
}

.title-med .elementor-heading-title {
    font-size: var(--text-28-39);
    font-weight: 600;
    color: var(--primary);
    /*margin-bottom: 1em;*/
}

.title,
.title .elementor-heading-title {
    font-size: var(--text-lg);
    /*16-22*/
    font-weight: 600;
    color: var(--primary);
    /*margin-bottom: 0.5em;*/
}

.text,
[class*='text'] {

    &,
    & p {
        line-height: 1.25em;
        font-size: var(--text-base);
    }

    p {
        display: block;

        &:last-of-type {
            margin-bottom: 0;
        }
    }
}

.text-med {

    &,
    & * {
        font-size: var(--text-20-28) !important;
        text-wrap: balance;
        font-weight: 550;
    }
}

.text-xl {

    &,
    & * {
        font-size: var(--text-xl) !important;
    }
}

.text-big {

    &,
    & * {
        font-size: var(--text-2xl) !important;
        text-wrap: balance;
    }
}

.text-bigger {

    &,
    & * {
        font-size: var(--text-3xl) !important;
        text-wrap: balance;
    }
}

.elementor-icon-box-title > span {
    color: var(--primary-color);
}

hr:not([size]) {
    height: 25px !important;
}

/* MARK: Lists

*/

.check-list ul {
    list-style: none;
    margin: 0 !important;
    padding: 0 !important;

    li {
        display: flex;
        align-items: flex-start;
        align-items: center;
        margin-bottom: 20px;
        font-size: 22px;
        line-height: 1.3;

        &:before {
            content: '';
            display: inline-block;
            width: 22px;
            height: 22px;
            margin-right: 15px;
            background: center / contain no-repeat url('/wp-content/uploads/li.png');
            flex-shrink: 0;
        }
    }
}

.elementor-icon-box-description {
    line-height: 1.25em;
    display: block;
}

/* MARK: Header
*/

.breadcrumb {
    * {
        font-size: 15px !important;
    }

    .active {
        color: var(--primary-color) !important;
    }
}

.wrapper-breads {
    ol.breadcrumb {
        justify-content: flex-start;

        li {
            span.active {
                font-weight: bold;
            }

            a {
                color: var(--primary-color) !important;
            }

            &:not(:last-of-type) {
                &:after {
                    content: '>';
                    margin-inline: 0.5em;
                    color: var(--primary);
                    display: inline-block;
                }
            }
        }
    }
}

body.search-results .wrapper-breads {
    ol.breadcrumb {
        margin-top: 50px;
    }
}

.apus-breadscrumb a {
    color: var(--primary-color) !important;
}

body:not(.home) #apus-header {
    @media (min-width: 1400px) {
        position: sticky;
        top: 0;
        z-index: 25;
    }
}

#apus-header .e-con.e-parent {
    --content-width: 1550px !important;
}

#primary-menu > li {
    user-select: none;

    & > a {
        font-size: var(--text-size) !important;
        font-weight: 550 !important;
    }

    .fas {
        border-radius: 50%;
        overflow: hidden;
        margin-right: 0.5em;
        vertical-align: middle;
    }

    &:has(a > img) {
        & > a {
            img {
                margin-left: 0;
                vertical-align: middle;
                filter: brightness(100) saturate(0) grayscale(1) contrast(100);
            }
        }
    }
}

body:not(.home) {
    .main-menu {
        li:has(.fa-user) {
            a {
                color: var(--primary) !important;
            }

            &:before {
                background-color: var(--primary) !important;
            }
        }
    }

    #primary-menu > li {
        &:has(a > img) {
            & > a {
                color: var(--primary-color) !important;

                img {
                    margin-left: 0;
                    vertical-align: middle;
                    filter: none;
                }
            }

            &:before {
                background-color: var(--primary-color) !important;
            }
        }
    }
}

body.home .home-hero {
    position: relative;
    max-height: calc(100svh - 80px);
    min-height: unset;

    & > .e-con-inner {
        max-height: calc(85svh - 80px);

        @media (width>=1400px) {
            margin-top: 100px;
        }
    }

    .e-con-inner {
        h1 {
            font-size: var(--text-3xl) !important;

            @media (height<720px),
            (width<1200px) {
                font-size: var(--text-2xl) !important;
            }
        }

        h2 {
            font-size: var(--text-2xl) !important;

            @media (height<720px),
            (width<1200px) {
                font-size: var(--text-xl) !important;
            }
        }

        .tab-list {
            ul.nav-tabs > li > label > span {
                font-size: var(--text-16-22) !important;

                &:before {
                    background-color: var(--secondary-color) !important;
                    height: 3px !important;
                    transform: translateY(-5px);
                }
            }
        }

        &:before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: transparent linear-gradient(180deg, #000000 0%, #00000000 100%) 0% 0% no-repeat padding-box;
        }
    }

    .form-search {
        .btn-submit {
            font-weight: bold !important;
            font-size: var(--text-base) !important;
            padding: 15px 30px !important;

            @media (width>767px) {
                min-width: 160px !important;
            }

            text-align: center;

            i {
                display: none !important;
            }
        }
    }
}

/* MARK: Elements

*/

.card-servizi {
    border: solid 1px var(--gray);
    border-radius: var(--radius-lg) !important;
    overflow: hidden !important;
    padding: 0;
    margin-inline: 15px !important;

    @media (width<768px) {
        margin-left: 0 !important;
    }

    .card-img {
        background-size: cover;
        background-repeat: no-repeat;
        background-position: center;
        width: 100%;
        height: min(15vw, 240px) !important;
        max-height: 240px !important;

        @media (width<=1024px) {
            height: max(240px, 40vw) !important;
        }

        border-radius: 0 !important;
        margin-bottom: 2rem !important;
    }

    .card-content {
        padding: 0 1.5rem 4rem !important;

        .card-title .elementor-heading-title {
            font-size: var(--text-xl) !important;
            font-weight: 600 !important;
            color: var(--primary) !important;
            margin-bottom: 0.5em !important;
            display: block;
        }

        .card-description {
            font-size: var(--text-base) !important;
            color: var(--text-color) !important;
        }
    }

    &.card-with-arrow {
        cursor: pointer;
        position: relative;

        &:after {
            content: '';
            position: absolute;
            bottom: 1rem;
            right: 1.5rem;
            width: 40px;
            height: 40px;
            background-color: transparent;
            background-image: url('/wp-content/uploads/freccia-br.png');
            background-repeat: no-repeat;
            background-position: center;
            background-size: 50% auto;
            border-radius: 50%;
            transition: background-color 0.25s ease-in-out;
        }

        &:is(:hover, :focus, :active):after {
            background-color: #f2da00;
            border-radius: 50%;
        }
    }
}

.box {
    border-radius: var(--radius-xl) !important;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    overflow: hidden !important;
    padding: 4rem 2rem !important;
    min-height: min(80vw, 20rem);
    justify-content: center !important;

    &.primary {
        background: var(--primary-color);

        &,
        .text,
        [class*='text'] p {
            color: #fff !important;
        }
    }

    &.secondary {
        background: var(--secondary-color);

        &,
        .text,
        [class*='text'] p {
            color: var(--primary-color) !important;
        }
    }

    /*
	@media (width<1025px) {
		&.large-padding,
		&.p-xl {
			padding-block: 20px !important;
			padding-inline: 15px !important;
			.e-con-inner > div {
				padding-inline: 15px !important;
			}
		}
	}*/
}

.full-box {
    background: var(--secondary-color);
    border-radius: var(--radius-xl) !important;

    &.large-padding,
    &.p-xl {
        padding-block: var(--spacer-50);

        .e-con-inner > div {
            padding-inline: var(--spacer-65) !important;
        }
    }
}

@media (width<=767px) {
    .e-con-full:has(> .full-box) {
        margin-left: 15px;
        width: calc(100% - 30px) !important;

        .e-con-inner > div {
            padding-block: 25px !important;
        }
    }
}

#wp-realestate-popup-message {
    .bg-info {
        background-color: var(--primary-color) !important;
        color: #fff !important;
    }

    .alert {
        border-top-right-radius: 0 !important;
        border-bottom-right-radius: 0 !important;
        min-width: 15vw;
    }
}

.home-agenzia-boxes {
    display: grid !important;
    grid-template-columns: 1fr 1fr 2fr;
    grid-template-rows: 1fr 1fr;
    grid-column-gap: 30px !important;
    grid-row-gap: 30px !important;
    max-width: min(100%, var(--container-width)) !important;
    margin: 0 auto !important;

    & > .e-con-inner {
        display: contents !important;
    }

    .box.img-large {
        grid-area: 1 / 1 / 2 / 3;
    }

    .box.txt-large {
        grid-area: 1 / 3 / 3 / 4;
    }

    .box.txt-small {
        grid-area: 2 / 1 / 3 / 2;
    }

    .box-img-small {
        grid-area: 2 / 2 / 3 / 3;
    }

    @media (width<1200px) {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: repeat(4, 1fr);

        .box.img-large {
            grid-area: 1 / 1 / 2 / 3;
        }

        .box.txt-small {
            grid-area: 2 / 1 / 3 / 2;
        }

        .box-img-small {
            grid-area: 2 / 2 / 3 / 3;
        }

        .box.txt-large {
            grid-area: 3 / 1 / 5 / 3;
        }
    }

    @media (width<600px) {
        grid-template-columns: 1fr;
        grid-template-rows: repeat(4, min-content);

        .box {
            min-height: min(400px, 80vw) !important;
        }

        .box.img-large {
            grid-area: 1 / 1 / 2 / 2;
        }

        .box.txt-small {
            grid-area: 2 / 1 / 3 / 2;
        }

        .box-img-small {
            grid-area: 3 / 1 / 4 / 2;
        }

        .box.txt-large {
            grid-area: 4 / 1 / 5 / 2;
        }
    }
}

.slick-slide {

    /* Carosello agenzie in home */
    .agency {
        position: relative;

        .agency-logo.agency-thumbnail {
            width: 100%;
            height: 25rem;

            &::before {
                content: '';
                position: absolute;
                inset: 0;
                background: transparent linear-gradient(180deg, #000000d1 0%, #00000000 85%) 0% 0% no-repeat padding-box;
            }

            a {
                height: 100%;
                display: block;

                .image-wrapper {
                    height: 100%;

                    img {
                        width: 100%;
                        min-height: 100%;
                        object-fit: cover;
                        object-position: center;
                    }
                }
            }
        }

        .agency-hover-arrow {
            z-index: 25;
            cursor: pointer;
        }

        .agency-information-bottom {
            position: absolute;
            top: 2rem;
            left: 1.5rem;

            &,
            & a {
                color: #fff !important;
            }

            .agency-title {
                font-size: var(--text-20-28) !important;
                font-weight: 500 !important;
            }
        }
    }

    .property-title {
        padding-right: 1rem;
    }
}

/* MARK: Form di ricerca
*/
@media (max-width: 1024px) {
    .action-show-filters.d-inline-block {
        display: none !important;
    }

    .action-show-filters + .filter-listing-form {
        display: block !important;
    }
}

@media (max-height: 940px) and (orientation: landscape) {
    .elementor-widget-apus_element_realestate_search_form {
        zoom: 0.95;
    }
}

@media (max-height: 880px) and (orientation: landscape) {
    .elementor-widget-apus_element_realestate_search_form {
        zoom: 0.85;
    }
}

.select2-result-provincia,
.select2-result-regione,
.select2-result-comune,
.select2-result-zona {
    background: url('/wp-content/uploads/pin.svg') no-repeat left center / contain;
    padding-left: 1.5rem;

    .level-label {
        font-size: 85%;
    }

    .level-label,
    .separator {
        color: var(--gray-darker);
    }
}

.select2-result-zona {
    background-image: url('/wp-content/uploads/zone.svg');
    margin-left: -3px;
    margin-right: 3px;
}

/* Ricerca Homepage */

.home .form-search {
    ul.nav-tabs {
        user-select: none;
    }

    .row.list-fileds {
        background: #fff;
        padding: 15px;
        border-radius: var(--radius-lg);
        width: min(100%, 1200px);
        margin-inline: auto;

        & > div {
            display: contents !important;
        }

        .select2 {
            border: solid 1px var(--dark-gray);
            border-radius: var(--radius-lg);
            margin-right: 15px !important;
        }

        .select2-selection--single {
            padding-right: 2rem !important;
        }

        .select2-selection__arrow {
            line-height: 1 !important;
        }

        select,
        .select2-selection--single,
        .select2.select2-container--default.select2-container .select2-selection--single {
            padding: 10px 15px !important;

            .select2-selection__arrow {
                top: 16px;
            }

            .select2-selection__clear {
                transform: translateX(20px);
            }
        }

        .btn-submit {
            border-radius: var(--radius-lg) !important;
            padding: 10px 30px !important;
        }
    }

    /*@media (width>=1280px) {*/
    @media (orientation: landscape) {
        .location-hierarchy-wrapper {
            margin: 0 !important;

            .field-group {
                display: flex;
            }
        }

        .form-group,
        .field-group > div {
            margin-right: 15px;
        }

        .row.list-fileds {
            flex-wrap: nowrap;
        }

        .location-level {
            margin-bottom: 0 !important;
        }

        .location-hierarchy-wrapper,
        .ns-location-transformed,
        .location-regione,
        .location-provincia,
        .location-comune {
            display: inline-block !important;
        }

        .tax-select-field {
            min-width: 260px;
        }

        .location-level {
            width: 232px;
        }

        .btn-submit {
            height: 58px;
            margin-left: 5px;
        }
    }

    /*@media (width<1280px) */
    @media (orientation: portrait) {
        .row.list-fileds {
            padding: 25px clamp(15px, 11.3636px + 1.1364vw, 25px) !important;

            .tax-select-field {
                width: 100%;
                max-width: 100%;
                margin-bottom: 15px;
            }

            .select2 {
                margin-inline: 0 !important;
            }
        }

        .d-md-flex:has(.btn-submit) {
            display: block !important;
            margin-inline: auto;
            width: 280px;
        }

        .btn-submit {
            width: 280px;
        }
    }

    @media (width<1200px) {
        .row.list-fileds {
            .select2.select2-container--default.select2-container .select2-selection--single .select2-selection__arrow {
                top: 10px;
            }
        }
    }

    @media (width<600px) {

        .d-md-flex:has(.btn-submit),
        .btn-submit {
            width: 100%;
        }
    }
}

/* Ricerca Home e interna (immobili e agenzie) */

.post-type-archive.post-type-archive-property .elementor-heading-title {
    text-wrap: balance;
    text-align: center;
}

.agencies-ordering {
    display: none;
}

.action-location .leaflet-geocode-container {

    ul li,
    span {
        font-size: var(--justhome-main-font-size) !important;
    }

    span {
        &.highlight {
            color: var(--primary);
            font-weight: 600;
        }
    }
}

aside label,
.form-search.filter-listing-form .heading-label,
.form-search.filter-listing-form .field-label,
.apus-mfp-zoom-in .heading-label {
    font-size: 1rem !important;
    margin: 0 0 12px;
    color: var(--justhome-heading-color);
    font-weight: 600 !important;
    display: block;
    user-select: none;
}

.form-group-location .heading-label {
    margin-bottom: -10px !important;
    margin-top: 10px !important;
}

/* Posizionamento select per ricerca località */

.select2-container--default .select2-dropdown:has(ul[id*='location-results']) {
    /*padding: 10px 0;*/
    padding: 15px;
    border: none !important;
    margin-top: 22px;

    @media (width<375px) {
        margin-top: 26px;
    }

    .select2-search--dropdown {
        padding: 0 !important;
    }

    .select2-search__field {
        padding-inline: 20px;
        transition: none !important;
    }

    .select2-results__option.select2-results__message {
        padding: 0 10px 10px 0 !important;
        transition: none !important;
    }

    @media (width>=1200px) {
        .select2-search__field {
            height: calc(var(--text-14-18) + 40px);
        }
    }

    @media (width<1200px) {
        .select2-search__field {
            height: calc(var(--text-14-18) + 34px);
        }
    }

    @media (width<800px) {
        .select2-search__field {
            height: calc(var(--text-14-18) + 33px);
        }
    }

    @media (width<420px) {

        /*0.95*/
        .select2-search__field {
            height: calc(var(--text-14-18) + 33px);
        }
    }

    @media (width<375px) {

        /*0.9*/
        .select2-search__field {
            height: calc(var(--text-14-18) + 33px);
        }
    }

    /*
	&.select2-dropdown--above {
		@media (width>=1200px) {
			transform: translateY(112px) !important;
		}
		@media (width<1200px) {
			transform: translateY(105px) !important;
		}
		@media (width<800px) {
			transform: translateY(104px) !important;
		}
		@media (width<420px) {
			transform: translateY(81px) translateX(2px) !important;
		}
		@media (width<375px) {
			transform: translateY(57px) translateX(4px) !important;
		}
	}
	&.select2-dropdown--below {
		@media (width>=1200px) {
			transform: translateY(-78px) !important;
		}
		@media (width<1200px) {
			transform: translateY(-71px) !important;
		}
		@media (width<800px) {
			transform: translateY(-70px) !important;
		}
		@media (width<420px) {
			transform: translateY(-46px) translateX(2px) !important;
		}
		@media (width<375px) {
			transform: translateY(-22px) translateX(4px) !important;
		}
	}*/
}

.home .select2-container--default .select2-dropdown:has(ul[id*='location-results']) {
    margin-top: 10px !important;

    .select2-results__option.select2-results__message {
        /*padding: 10px 20px !important;*/
        padding-block: 15px;
    }
}


/* Zone */
.zone-filter-group {

    margin-top: -15px;
    margin-bottom: 30px !important;

    .zone-autocomplete-wrapper {
        position: relative;

        input {
            width: 100%;
        }
    }


    .zone-suggestions {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background: #fff;
        border: 1px solid #ddd;
        border-top: none;
        border-radius: 0 0 4px 4px;
        max-height: 200px;
        overflow-y: auto;
        z-index: 999;
        display: none;

        li {
            padding: 8px 12px;
            cursor: pointer;
            font-size: 13px;
            list-style: none;

            &:hover {
                background: var(--primary-color, #f5f5f5);
                color: #fff;
            }
        }

        .wpcf7-not-valid-tip {
            font-size: 12px;
            margin-top: 0.25em;
            font-family: sans-serif;
        }
    }

    .zone-pills {
        display: flex;
        flex-wrap: wrap;
        gap: 0.5rem;
        margin-top: 15px;
        min-height: 0;
        padding-left: 10px;

        .zone-pill {
            display: inline-flex;
            align-items: center;
            gap: 5px;
            background: var(--primary-color, #333);
            color: #fff;
            border-radius: 20px;
            padding: 4px 10px;
            font-size: var(--text-12-14);
            line-height: 1.4;

            .zone-pill-remove {
                cursor: pointer;
                font-style: normal;
                font-size: var(--text-14-18);
                line-height: 1;
                margin-right: -5px;
                opacity: 0.8;

                &:hover {
                    opacity: 1;
                }
            }

            @media (pointer: coarse) {
                padding: 10px 16px;
                font-size: var(--text-14-18);

                .zone-pill-remove {
                    font-size: 1.5rem;
                    margin-left: 15px;
                }
            }
        }

    }


}

/* Not homepage search */
.form-search.filter-listing-form:not(:has(.tab-list)) {

    .form-group,
    [class*='form-group-'] {
        width: 100%;
        margin-bottom: 20px;
    }

    .form-groupg-agency-filter {
        border: solid 1px #e9e9e9;
        border-radius: var(--radius-lg);
        padding: 10px 15px !important;

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

        select,
        .select2-selection--single,
        .select2.select2-container--default.select2-container .select2-selection--single {
            border-bottom: none;
        }
    }
}

.form-search.filter-listing-form {
    .row > * {
        padding: 0 !important;
    }

    .form-group-location {
        flex-direction: column;
    }

    .search-form-inner {
        padding: 0 15px !important;
        background-color: unset !important;
        border: none !important;
    }

    .col-md-1 {
        display: contents;
    }

    /* Select */
    .select2-container {
        max-width: 100%;
        width: 100% !important;
        /*margin-bottom: 20px;*/
    }

    .select2-results .select2-results__option {
        padding-left: 10px !important;
    }

    .location-level:not(:last-of-type) {
        margin-bottom: 20px;
    }

    select,
    .select2-selection--single,
    .select2.select2-container--default.select2-container .select2-selection--single {
        border-top: none;
        border-left: none;
        border-right: none;
        border-bottom: solid 1px #000;
        border-radius: 0 !important;
        height: auto !important;
        padding: 10px 15px 15px 10px !important;

        span,
        &.ns-location-select {
            color: #000;
            font-size: var(--text-14-18) !important;
            font-weight: 600 !important;
            line-height: 1.25 !important;
        }

        /*&:has(.select2-selection__clear) {
			.select2-selection__arrow {
				opacity: 0;
			}
		}*/
        .select2-selection__clear {
            display: none;
        }
    }

    .form-group-inner.field-region.field-region1 {
        display: none;
    }

    .location-level.loading {
        opacity: 0.5;
        pointer-events: none;
    }

    .from-to-text-wrapper .price-input-wrapper {
        width: 100%;
        padding: 15px;
        border-radius: var(--radius-lg);
        background-color: var(--gray);
    }

    /* Versione interna */
    &.vertical {

        select,
        .select2-selection--single,
        .select2.select2-container--default.select2-container .select2-selection--single {
            span {
                padding: 0 !important;
            }
        }
    }

    .select2-container--disabled .select2-selection--single {
        background-color: unset !important;
        opacity: 0.5;
    }

    .location-selects-wrapper {
        flex-direction: column;
        margin-top: 15px;
    }
}

.post-type-archive-agency {
    .form-search.filter-listing-form {
        /*.form-group-inner:not(:has(.location-level)) {
			display: none;
		}*/

        /* Nascondi i campi regione nel widget agenzie */
        .ns-regione-select,
        .ns-location-field:has(.ns-regione-select) {
            display: none !important;
        }

        .form-group.form-group-title label {
            display: none;
        }
    }
}

.agency-detail-properties a.btn-readmore {
    font-size: var(--text-base) !important;
    font-weight: 550 !important;
    -webkit-appearance: button;
    display: inline-block;
    text-align: center;
    vertical-align: middle;
    user-select: none;
    border-radius: 8px;
    white-space: nowrap;
    text-decoration: none !important;
    outline: none !important;
    transition: all 0.1s ease-in-out 0s;
    box-sizing: border-box;
    padding: 10px 20px !important;
    line-height: 1 !important;
    cursor: pointer;
    color: var(--primary-color);
    text-transform: none;
    background-color: var(--secondary-color) !important;
    border: none;

    span.next:after {
        content: '';
        display: inline-block;
        width: 16px;
        height: 16px;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath fill='%23056b3a' d='M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z'/%3E%3C/svg%3E");
        background-size: contain;
        background-repeat: no-repeat;
        transform: rotate(225deg);
        vertical-align: middle;
    }
}

@media (width<=480px) {
    .ms-auto:has(a.btn-readmore) {
        display: contents;

        a.btn-readmore {
            width: 100%;
        }
    }
}

@media (min-width: 1200px) {
    .from-to-text-wrapper {
        height: auto !important;
    }
}

.select2-results .select2-results__option {
    line-height: 1.2em !important;
    padding-block: 10px !important;
}


form.form-search {
    .advance-search-btn {
        span.text {
            font-size: 0.95rem !important;
        }
    }
}

.btn-saved-search.btn-secondary.disabled {
    color: #6c757d;
    border-color: #6c757d;
    background-color: #fff;
    pointer-events: unset;

    &,
    &:hover,
    &:focus {
        color: #6c757d;
        border-color: #6c757d;
        background-color: #fff;
    }
}

.advance-search-wrapper .from-to-text-wrapper .price-input-wrapper {
    width: 100%;
    background-color: var(--gray);
    padding: 10px;
    border-radius: var(--radius-lg);
}

.close-advance-popup {
    cursor: pointer;
}

/* Popup salva ricerca */

.saved-search-form-wrapper {
    padding: 0 !important;

    .form-group:not(:first-of-type) {
        margin-top: 2rem;
    }

    label {
        font-size: 1rem !important;
        margin: 0 0 12px;
        color: var(--justhome-heading-color);
        font-weight: 600 !important;
        display: block;
    }

    .mfp-close {
        transform: translate(50%, -50%);
    }
}

/* Box comuni vicini */
/*
body:not(.location-comune) .comuni_vicini {
	display: none;
}*/

.comuni_vicini {
    &:not(:has(.comune-link)) {
        display: none;
    }

    .ns-comuni-vicini {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(265px, 1fr));
        column-gap: 45px;
        row-gap: 30px;

        a.comune-link {
            background: #fbf6cf;
            /*max-width: 460px;*/
            border-radius: var(--radius);
            border: solid 2px #fbf6cf;
            padding: 0.35rem 3rem 0.35rem 1.2rem;
            font-size: var(--text-16-20);
            color: var(--text-color);
            font-weight: 550;
            position: relative;
            white-space: nowrap;
            text-overflow: ellipsis;
            overflow: hidden;

            &:is(:active, :focus, :hover) {
                background: #fff;
                border-color: var(--primary-color);
                color: var(--primary-color);
            }

            &:after {
                content: '';
                background-image: url("data:image/svg+xml,%3Csvg aria-hidden='true' class='e-font-icon-svg e-fas-arrow-left' viewBox='0 0 448 512' xmlns='http://www.w3.org/2000/svg' style='transform: rotate(225deg);'%3E%3Cpath d='M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z'%3E%3C/path%3E%3C/svg%3E");
                width: 0.95em;
                height: 0.95em;
                background-size: contain;
                background-repeat: no-repeat;
                position: absolute;
                right: 1rem;
                top: 50%;
                transform: translateY(-50%);
            }
        }
    }
}

/* MARK: Properties / Immobili e singolo immobile
*/

.property-item .property-thumbnail-wrapper .action-item:has(> .btn-added-property-favorite) {
    opacity: 1;

    &:not(:hover) .flaticon-heart:before {
        content: '';
        display: inline-block;
        width: 16px;
        height: 16px;
        background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="%23FFFFFF"><path d="M8 1.314C12.438-3.248 23.534 4.735 8 15 -7.534 4.736 3.562-3.248 8 1.314z"/></svg>') no-repeat center/contain;
    }
}

.property-image .image-wrapper img {
    min-width: 100%;
}

.property-grid.property-item {

    .price-text,
    .property-price {
        font-size: var(--text-16-20) !important;
    }

    .property-metas {
        .property-meta.with-icon > i {
            display: none;
        }
    }

    @media not print {

        &.property_status-affitto:not([data-availability='available']) .property-image::after,
        &.property_status-vendita:not([data-availability='available']) .property-image::after {
            z-index: 10;
            position: absolute;
            inset: 0;
            background: rgba(5, 107, 58, 0.5);
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 2rem;
            font-weight: bold;
            letter-spacing: 0.1em;
            color: #fff;
        }

        &.property_status-affitto:not([data-availability='available']) .property-image::after {
            content: 'AFFITTATO';
            letter-spacing: 0.05em;
        }

        &.property_status-vendita:not([data-availability='available']) .property-image::after {
            content: 'VENDUTO';
        }
    }

    &.is_new {
        .property-thumbnail-wrapper .property-image img {
            border: solid 4px var(--secondary-color);
            border-radius: var(--radius-xl);
            overflow: hidden;
            min-width: calc(100% - 4px);
            max-width: calc(100% - 4px);
        }

        &:after {
            content: 'NUOVO';
            position: absolute;
            top: 10px;
            right: 15px;
            background: var(--secondary-color);
            color: var(--primary-color);
            padding: 5px 10px;
            font-size: var(--text-12-16);
            font-weight: 600;
            border-radius: var(--radius);
        }
    }
}

.property-item {
    border: 0 !important;
    padding: 0 !important;
}

.property-information,
.agency-information {
    .property-location {
        font-size: var(--text-14-18) !important;

        &::first-letter {
            text-transform: uppercase;
        }
    }
}

.member-list .metas .type-show-all .inner {
    padding-left: 0;

    .with-title {
        margin-bottom: 0;
    }
}

.single-property {
    .main_property_content {
        container-name: main_property_content;
        container-type: inline-size;
    }

    @container main_property_content (max-width: 1000px) {
        .top_infos_title {
            .property-detail-title h1 {
                font-size: var(--title-large) !important;
            }
        }

    }

    .property-detail-description ul {
        font-size: var(--text-base);
        list-style: square;
        list-style-position: inside;
        list-style-color: var(--primary-color);
        padding-left: 0.5em;

        ::marker {
            color: var(--primary-color);
        }
    }

    .elementor-widget-apus_element_detail_property_favorite_button {
        max-width: fit-content !important;
    }

    .property-detail-favorite.action-item {
        padding: 0 !important;

        a {
            display: flex;
            align-items: center;
            padding: 0.45rem 1.65rem;
            border: none;
            /*border: solid 2px var(--secondary-color);*/
            border-radius: var(--radius) !important;

            &.btn-add-property-favorite {
                background: var(--secondary-color);

                span,
                i:before {
                    color: var(--primary-color);
                }
            }

            &.btn-added-property-favorite {
                background: var(--primary-color);

                span,
                i:before {
                    color: #fff;
                }
            }

            span {
                font-size: var(--text-16-22);
                font-weight: 600;
                text-transform: none;
            }

            i {
                border: none;

                &:before {
                    font-size: 1.5rem;
                    content: '\f10b';
                }
            }

            &:is(:hover, :active, :focus) {
                background: var(--secondary-dark);

                i {
                    background: rgba(255, 255, 255, 0) !important;

                    &:before {
                        font-size: 1.5rem;
                    }
                }

                i:before,
                span {
                    color: var(--primary-color);
                }
            }
        }
    }

    .avg-price {
        display: none;
    }

    .property-price,
    .price-text {
        font-weight: bold;
        font-size: var(--text-24-32);
    }

    .property-detail-detail {
        .value * {
            font-size: var(--text-size) !important;
        }

        .content-value {
            line-height: 1em;
            display: inline-block;
        }

        .field-title {
            display: block;
            font-weight: bold;
            line-height: 1.2em;
        }

        ul.list-overview li:has(.content-value:empty) {
            display: none !important;
        }

        @media (width<480px) {
            .list-overview li {
                width: 100%;
            }
        }
    }

    .title:is(h2, h3, h4) {
        font-size: var(--title-large) !important;
        font-weight: 600 !important;
    }

    /*
	.elementor-heading-title:is(h2, h3) {
		font-size: var(--title-large) !important;
		font-weight: 600 !important;
		line-height: 1.2em !important;
		text-wrap: balance;
	}*/

    .property-amenities {
        container-name: amenities-list;

        .columns-gap li {
            padding-left: 0;
            color: var(--text-color);
            font-size: var(--base-font-size);
            display: flex;
            align-items: center;
            gap: 10px;

            i.fas {
                font-size: 1.65em;
                font-weight: 900;

                &.fa-check {
                    color: var(--secondary-color);
                }
            }

            &:before {
                display: none;
            }

            span::first-letter {
                text-transform: uppercase;
            }
        }

        @media (min-width: 1200px) {
            .columns-gap li {
                width: 33.33333%;
            }
        }

        @media (max-width: 580px) {
            .columns-gap li {
                width: 100%;
                margin-bottom: 0;
            }
        }
    }

    .property-detail-energy {
        .energy-inner-top + .energy-inner {
            margin-top: 50px !important;
        }

        ul.list {
            display: grid;
            grid-template-columns: 1fr 1fr;

            li {
                flex-direction: column;
                text-align: left;
                align-items: flex-start;
                -webkit-align-items: flex-start;
                -ms-flex-align: flex-start;
                justify-content: flex-start;

                div.value,
                div.text {
                    line-height: 1;
                    color: var(--text-color);
                    font-size: var(--text-base);
                    margin-left: 0;
                }

                div.text {
                    font-weight: 600;
                    margin-bottom: 0.5em;
                }
            }
        }

        /* Green Gradations for A classes */
        .energy-a4 {
            background: #1b5e20;
            color: white;
            border-top-left-radius: 10px;
            border-bottom-left-radius: 10px;
        }

        .energy-a3 {
            background: #2e7d32;
            color: white;
        }

        .energy-a2 {
            background: #43a047;
            color: white;
        }

        .energy-a1 {
            background: #66bb6a;
            color: white;
        }

        .energy-g {
            border-top-right-radius: 10px;
            border-bottom-right-radius: 10px;
        }

        .active {
            font-weight: bolder;
        }

        .grayscale {
            /*filter: grayscale(100%);*/
            background: var(--gray-dark);
        }

        @media screen and (max-width: 1200px) {
            .energy-inner-top {
                margin-bottom: 75px;
            }
        }

        @media (width<420px) {
            .energy-inner-top {
                margin-bottom: 10px;
            }

            .energy-inner-top > ul {
                grid-template-columns: 1fr;
                row-gap: 15px;

                * {
                    font-size: 16px !important;
                }
            }

            .energy-inner {
                display: none !important;
            }
        }

        .energy-inner:not(:has(.energy-group.active)) {
            display: none !important;
        }
    }

    .video-container {
        flex-wrap: nowrap !important;

        &:not(:has(iframe)) {
            display: none !important;
        }

        .video-embed-wrapper + .video-embed-wrapper {
            margin-top: clamp(1.563rem, calc(0.919rem + 2.451vw), 3.125rem);
            /* min: 25px, max: 50px */
            ;
        }
    }

    #annunci-simili {
        .slick-carousel .slick-arrow {
            top: calc(50% - 100px) !important;
        }

        .slick-dots {
            padding-top: 0;
            margin-top: -1.5rem;
        }

        .property-item .slick-carousel-gallery-properties {
            width: unset;
            height: unset;
            top: unset;
            left: unset;
        }
    }

    /* Slider gallery interna */
    .property-detail-gallery.v5 {
        .slick-carousel {
            .slick-slide {
                aspect-ratio: 4/3 !important;
            }
        }

        .p-popup-image:before {
            opacity: 0 !important;
        }
    }

    @media (max-width: 767px) {
        .property-detail-gallery .row.row-10 {
            row-gap: 10px;
        }
    }

    /* Condizioni per nascondere i titoli delle sezioni vuote */
    .elementor-widget-apus_element_detail_property_location:not(:has(.single-property-map)),
    :not(:has(.property-detail-description)) .descrizione-title,
    :not(:has(.property-amenities ul li)) .caratteristiche-title,
    :not(:has(.detail-gallery img)) .immagini-title,
    :not(:has(.property-attachments)) .documenti-title,
    :not(:has(.property-detail-floor-plans .floor-item .tab-content)) .planimetria-title,
    :not(:has(.property-detail-energy .energy-inner-top)) .classeenergetica-title {
        display: none;
    }

    .elementor-widget-apus_element_detail_property_location:has(#single-property-google-maps[data-latitude='']) {
        display: none;
    }

    .bottom_nav {
        display: grid;
        align-items: center;

        & > div:has(.ns-social-share-widget) {
            text-align: center;
            align-content: center;
            align-self: center;

            .ns-social-share-widget {
                justify-content: center;
            }
        }

        @media (width<1400px) {
            grid-template-columns: 1fr 1fr !important;
            row-gap: 30px;

            & > div:nth-child(3) {
                grid-area: 2 / 1 / 3 / 3 !important;
                justify-content: end !important;

                button {
                    display: block;
                    margin-left: auto;
                }
            }
        }

        @media (min-width: 600px) and (max-width: 1399.98px) {
            .ns-social-share-widget {
                justify-content: end !important;
            }
        }

        @media (width<640px) {
            grid-template-columns: 1fr !important;
            grid-template-rows: auto auto auto !important;

            & > div:nth-child(3) {
                grid-area: 3 / 1 / 4 / 2 !important;
            }
        }
    }

    @media not print {
        &:not([data-availability='available']) .elementor-widget-apus_element_detail_property_gallery {
            .view-more-gallery {
                display: none
            }

            &:first-of-type::after {
                z-index: 10;
                position: absolute;
                inset: 0;
                background: rgba(5, 107, 58, 0.5);
                display: flex;
                align-items: center;
                justify-content: center;
                font-size: clamp(2.5rem, 1.875rem + 3.125vw, 5rem);
                font-weight: bold;
                letter-spacing: 0.1em;
                color: #fff;
                border-radius: var(--radius-lg);
            }

            @media(orientation: portrait) {
                max-height: 350px;
                overflow: hidden;
                border-radius: var(--radius-lg);
            }

        }

        &.status-affitto:not([data-availability='available']) .elementor-widget-apus_element_detail_property_gallery:first-of-type::after {
            content: 'AFFITTATO';
            letter-spacing: calc(0.05em + 1vw);
        }

        &.status-vendita:not([data-availability='available']) .elementor-widget-apus_element_detail_property_gallery:first-of-type::after {
            content: 'VENDUTO';
            letter-spacing: 1vw;
        }

        &:not([data-availability='available']) .btn-add-property-favorite {
            pointer-events: none;
            display: none !important;
        }
    }
}

/* MARK: Stampa immobile
*/
@media print {
    @page {
        margin-top: 0.5cm;
        margin-bottom: 0.5cm;
    }

    .main_property_content {
        --text-base: 12px;
        --text-size: 12px;
    }

    .property-detail-detail .list-detail {
        .content-value {
            font-size: 12px !important;
        }
    }

    .list-detail li {
        border-bottom: none !important
    }

    .property-location {
        font-size: 12px !important
    }

    .elementor-widget {
        break-inside: avoid;
        page-break-inside: avoid;
    }

    .single-property {
        --text-size: 12px;
        --text-base: 12px;
        --base-font-size: 12px;
        --title-xlarge: 32px;
        --title-large: 20px;
        --text-2xl: 32px;

        .print_id {
            display: block !important;
            top: 15px;
            right: 0;
            color: #666;
            font-size: 10px;
            font-weight: bold;
            position: absolute;
            z-index: 150;
        }

        .menu_container,
        .property_top_nav,
        .top-wrapper-menu,
        .btn-showmenu,
        .top-property-navigation,
        .elementor-element:has(> .agency-contact-form),
        #annunci-simili,
        .bottom_nav,
        #apus-footer,
        .iubenda-tp-btn.iubenda-cs-preferences-link,
        .view-more-gallery,
        .ns-print-btn,
        .immagini-title,
        .detail-gallery:has(.slick-carousel),
        .documenti-title,
        .property-attachments,
        .energy-inner,
        .nav-tabs-floor,
        .btn.property-detail-favorite,
        .elementor-hidden-tablet,
        .elementor-hidden-desktop,
        .top_infos_after_title,
        .property-detail-energy .energy-inner-top + .energy-inner,
        .title-big.documenti-title,
        .title-big.immagini-title,
        .video-container {
            display: none !important;
            height: 0 !important;
        }

        .logo img {
            height: 1cm;
        }

        .e-con-full.main_property_content {
            gap: 15px !important;
        }

        .e-con-inner:has(.top_infos_title) {
            padding-top: 0 !important;
            margin-top: -25px;
        }

        .elementor-element:has(.elementor-widget-container>.elementor-heading-title) {
            page-break-after: avoid;
        }

        .property-detail-detail:has(.list-overview) {
            margin-bottom: -15px;
        }

        .energy-inner-top,
        .elementor-widget-apus_element_detail_property_details {
            margin-bottom: -35px !important;
        }

        .main_property_content {
            width: 100% !important;
        }

        .e-con-inner {
            max-width: 100% !important;
        }

        .elementor-invisible {
            visibility: visible !important;
        }

        .elementor-element[data-element_type='widget'] {
            opacity: 1 !important;
            transition-duration: 0s !important;
            transition-delay: 0s !important;
        }

        .list-overview .icon + .details {
            padding-left: 0;
        }

        .list-overview li {
            font-size: 12px;
            width: calc(25% - 8px) !important;
            padding: 0 !important;
            height: auto;
            outline: none;
        }

        .property-detail-description {
            line-height: 1.2em;
            font-size: 12px;
        }

        .property-detail-description p {
            font-size: 12px;
            line-height: 1.2em;
        }

        .property-detail-floor-plans .tab-content {
            &:after {
                display: table;
                content: '';
                clear: both;
            }

            .tab-pane {
                display: block !important;
                opacity: 1 !important;

                &:not(:first-of-type) {
                    margin-top: 2rem;
                    border-top: solid 1px var(--gray-dark);
                }

                .content {
                    font-size: var(--base-font-size);
                }
            }
        }

        .metas-floor > div {
            font-size: var(--base-font-size);
        }

        .detail-heading-title {
            color: 000;
        }

        .property-section.property-amenities {
            page-break-inside: avoid;

            .columns-gap {
                display: grid;
                grid-template-columns: repeat(3, 1fr);
            }

            .columns-gap li {
                padding-bottom: 0;
                width: 100%;
                margin-bottom: 0;
            }

            label {
                white-space: nowrap;
            }
        }

        .property-detail-location {
            .property-location.with-icon {
                text-transform: capitalize;

                .flaticon-location-pin {
                    display: none;
                }
            }
        }

        .leaflet-control-container {
            display: none;
        }

    }

}

.action-item [class*='btn'][class*='added']:hover i,
.action-item [class*='btn'][class*='remove']:hover i {
    background: var(--error-color) !important;
    border-color: var(--error-color) !important;
}

.single-property .detail-gallery .property-detail-gallery:has(.col-sm-6.c2:not(:has(img))) {
    .col-sm-6.c1 {
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }
}

.property-detail-gallery {
    .row-10.wrapper {
        margin-bottom: 0 !important;
        /*max-height: max(65vh, 800px);*/
    }

    .gallery-property-main-detail {
        border-radius: var(--radius-lg)
    }

    .gallery-property-main-detail,
    .p-popup-image,
    .image-wrapper,
    img {
        height: 100% !important;
        width: 100% !important;
        object-fit: cover;
        object-position: center;
    }

    .property-detail-gallery {
        border-radius: 0;
    }

    .p-popup-image {
        border-radius: var(--radius-lg) !important;
    }

    @media (width>767px) {
        .row-10 {
            .col-6 {

                &:nth-child(1),
                &:nth-child(2) {
                    margin-bottom: 15px;
                }

                &:nth-child(3),
                &:nth-child(4) {
                    margin-top: 15px;
                }
            }
        }
    }

    .row-10 > * {
        padding-left: 10px;
        padding-right: 10px;
    }

    .gallery-metas {
        display: none !important;
    }
}

.property-item .property-thumbnail-wrapper {
    aspect-ratio: 4/3;

    .image-thumbnail,
    .property-image,
    .image-wrapper {
        height: 100%;

        img {
            height: 100%;
            width: 100%;
            object-fit: cover;
            object-position: center;
        }
    }
}

.property-item .property-thumbnail-wrapper .top-label {
    padding: 10px 15px !important;
    top: unset !important;
    bottom: 0 !important;
}

.ns-property-location {
    display: flex;
    align-items: center;

    span {
        font-size: var(--text-16-22);
        font-weight: 550;
        text-transform: capitalize;
    }

    .location-icon {
        width: 1.5rem;
        height: 1.5rem;
        margin-right: 10px;
    }

    &:has(i.ns) {
        display: none;
    }
}

.property-grid.property-item {
    margin-bottom: clamp(15px, 2.2727px + 3.9773vw, 50px);
    container-name: property-grid-item;

    .status-property-label,
    .label-property-label,
    .featured-property {
        border-radius: var(--radius-xl);
    }

    .property-id-tag {
        line-height: 33px;
        display: inline-block;
        padding: 0 15px;
        font-size: 13px;
        font-weight: 500;
        text-transform: uppercase;
        background: #f2da00;
        color: var(--text-color) !important;
        border-radius: var(--radius-xl);
        white-space: nowrap;
        font-weight: 700;
    }

    .status-property-label,
    .label-property-label,
    .featured-property {
        font-weight: 700 !important;
    }
}

@container property-grid-item (max-width: 480px) {
    .property-grid.property-item {
        .property-metas .property-link {
            width: 100%;
            margin-top: 15px;

            .btn {
                width: auto;
            }
        }
    }
}

.property-information {

    .property-title,
    .property-location {

        &,
        & > a {
            color: var(--text-color) !important;
            font-size: var(--text-16-20);
        }

        &::first-letter {
            text-transform: uppercase;
        }
    }

    .property-title {
        padding-right: 1em;
        height: 2lh;
        text-overflow: ellipsis;
        overflow: hidden;
    }

    .property-price {
        color: var(--primary-color) !important;
    }

    .property-agency {
        font-size: var(--text-14-18);
        font-weight: 500;
    }

    .property-metas {
        font-size: var(--text-14-18);

        .property-link {
            flex-grow: 1;
            text-align: end;

            .btn {
                width: auto !important;

                svg {
                    height: 0.8em;
                    margin-left: 5px;
                }

                &:is(:hover, :active, :focus) {
                    svg {
                        fill: var(--primary-dark) !important;
                    }
                }
            }
        }
    }

    @media (width>767px) {
        .property-agency {
            min-height: 34px;
        }

        &:not(:has(.property-agency)) {
            .property-location {
                margin-top: 34px;
            }
        }
    }
}


/* MARK: Preferiti
Elenco preferiti area riservata */

.search-properties-saved-search-form > form > .input-group,
.search-properties-favorite-form > form > .input-group {
    width: 440px;
    max-width: 100%;

    @media (width<768px) {
        margin-bottom: 2rem;
        width: 100%;
    }

    @media (width<600px) {
        .btn {
            width: auto;
            min-height: unset;
        }
    }
}

.property-item-favorite {
    .information-top {
        position: relative;

        .btn-action-icon {
            display: none;
        }

        @media (width<768px) {
            .btn-action-icon {
                display: flex;
            }
        }
    }

    .top-label {
        zoom: 0.85;

        span {
            display: none;
        }
    }

    .btn-action-icon {
        background: none !important;
        border-radius: 0;
        color: var(--primary-color) !important;

        svg {
            width: 1.25rem;
        }

        &:is(:hover, :active, :focus) {
            color: var(--error-color) !important;
        }

        @media (width<768px) {
            &.hidden-mob {
                display: none;
            }
        }
    }

    .property-item {
        .property-metas {
            margin-top: 1.5rem;
            margin-bottom: 1rem;
            font-size: var(--text-12-14);

            .property-meta.with-icon i {
                display: none;
            }
        }

        .btn-remove-property-favorite {
            margin: 0;
            top: 10px;
            right: 0;
        }

        @media (width<768px) {
            .property-link {
                margin-top: 0.5rem;
                margin-bottom: 2rem;
            }
        }
    }

    @media (min-width: 1200px) and (max-width: 1499px) {
        width: 100% !important;
        padding-right: calc(var(--bs-gutter-x));
    }

    .property-location,
    .property-metas {
        margin-top: 10px !important;
        margin-bottom: 0 !important;
    }
}

/* MARK Ricerche salvate
*/

.wrapper-save-search {
    .table-responsive table.property-table {
        tr:nth-child(even) {
            background-color: hsl(0, 0%, 99%);
        }

        thead tr td {
            font-weight: 600;
            font-size: var(--text-14-18);
        }

        tbody tr td {
            &.property-table-info-content-title {
                padding-right: 2.5rem;

                & > strong {
                    display: flex;
                    align-items: center;
                }

                .new-properties-badge {
                    display: inline-block;
                    background-color: var(--primary-color);
                    color: white;
                    padding: 2px 8px;
                    font-size: 10px !important;
                    font-weight: bold;
                    border-radius: 10px;
                    margin-left: 8px;
                    vertical-align: middle;
                }
            }

            &:has(> .btn-remove-saved-search) {
                padding: 0;
            }

            p,
            span,
            div,
            a {
                font-size: var(--text-12-16) !important;
            }

            & > strong > a {
                font-size: var(--text-14-18) !important;
            }

            .alert-query {
                container-name: alert-query;

                ul.list {
                    line-height: 1.25em;

                    li * {
                        font-size: var(--text-12-14) !important;
                    }
                }
            }

            @container alert-query (min-width: 420px) {
                ul.list:has(li:nth-child(2)) {
                    column-count: 2;
                }
            }
        }
    }
}

/* Sezione news interna ad altre pagine */

aside.widget .wp-block-group .wp-block-categories-list .current-cat a {
    font-weight: 800 !important;
    color: var(--primary-color) !important;
}

.single-post .elementor-widget-theme-post-featured-image img {
    border-radius: var(--radius-lg) !important;

    @media(width<=1024px) {
        margin-bottom: 25px;
        width: 100%;
    }
}

#news {
    .image-wrapper {
        object-fit: cover;
        aspect-ratio: 4/3;

        img {
            width: 100% !important;
            height: 100%;
            object-fit: cover;
        }
    }

    .slick-slide,
    .slick-slide > article {
        height: 100%;
    }

    .col-content {
        text-align: left !important;
        padding: 1rem 1.5rem 2rem !important;

        .top-detail-info {
            display: none !important;
        }

        .entry-title > a {
            color: var(--text-color) !important;
            font-size: var(--text-lg);
        }

        .readmore {
            text-align: right !important;
            margin-top: 1.5rem !important;

            a {
                font-weight: 700 !important;
            }

            svg {
                display: none !important;
            }
        }
    }
}

/* Box info agenzia */

.elementor-widget-container:has(.property-agency-info) {}

@media (width>767px) {
    .elementor-widget-container:has(.property-agency-info) {
        container-name: agency-side-form;
        container-type: inline-size;
    }
}

.agency-contact-form {
    gap: 15px !important;

    .property-agency-info {
        margin-bottom: 0;
        overflow: hidden;
        display: grid;
        grid-template-columns: 150px 1fr;
        gap: 30px;
        align-items: center;

        .agency-image img {
            border-radius: 50%;
            max-width: 100%;
            height: auto;
            display: block;
            aspect-ratio: 1 / 1;
        }

        .agency-details {
            overflow: hidden;

            p:not(:last-child) {
                margin-bottom: 0.2em;
            }
            h4,p {
                text-wrap:pretty;
                display: block;;
            }
        }

        .agency-name {
            margin-top: 0;
            margin-bottom: 0.5em;
            font-size: var(--text-16-22);
            color: var(--primary-color);
            font-weight: 600;

            a {
                color: var(--primary-color);
                text-decoration: none;

                &:hover {
                    text-decoration: underline;
                }
            }
        }

        p {
            margin: 0;
            display: block;
            line-height: 1.25em;
            font-size: var(--text-12-14);

            &:not(:last-of-type) {
                margin-bottom: 0.25em;
            }
        }

        i {
            width: 20px;
            margin-right: 5px;
            text-align: center;
            color: var(--text-color);
        }

        .agency-phone a,
        .agency-email a {
            color: var(--text-color);
            text-decoration: none;

            &:hover {
                text-decoration: underline;
            }
        }

        .agency-address {
            color: var(--text-color);
        }

        .agency-locations {
            margin-top: 15px;
            padding-top: 15px;
            /*border-top: 1px dashed #eee;*/
            font-size: var(--text-12-16);
            color: var(--text-color);
        }

        &:not(:has(img)) {
            grid-template-columns: 1fr !important;
        }
    }
}

/* Unsticky sidebar for low heights */
.elementor-widget-apus_element_detail_agency_contact_form,
.agency-contact-form {
    &:has(.property-agency-info) {

        /*@media (height<1125px) {*/
        @media (height<580px) {
            position: relative !important;
            top: unset !important;
        }
    }

    &:not(:has(.property-agency-info)) {

        /*@media (height<965px) {*/
        @media (height<420px) {
            position: relative !important;
            top: unset !important;
        }
    }
}

@container agency-side-form (max-width:360px) {
    .property-agency-info {
        grid-template-columns: 1fr !important;

        .agency-image {
            display: none;

            img {
                max-width: 100% !important;
                margin-inline: auto !important;
            }
        }
    }
}

@media (width<=1024px) {
    .property-agency-info {
        grid-template-columns: calc(90px + 2vw) 1fr !important;

        .agency-image {
            img {
                width: calc(90px + 2.5vw);
                height: calc(90px + 2.5vw);
            }
        }
    }
}

@media (width<420px) {
    .property-agency-info {
        grid-template-columns: 1fr !important;

        .agency-image {
            display: none;

            img {
                max-width: 100% !important;
                margin-inline: auto !important;
            }
        }
    }
}

@media (orientation: landscape) and (max-height: 1250px) {
    :is(.agency-detail-contact-form, .agency-contact-form) .wpcf7 .wpcf7-form-control.form-control {
        margin-top: 0.8rem;
        font-size: 16px;
    }
}

@media (orientation: landscape) and (max-height: 1000px) {
    :is(.agency-detail-contact-form, .agency-contact-form) .wpcf7 .wpcf7-form-control.form-control {
        margin-top: 0.5rem;
        font-size: 16px;
    }
}

/* Popup contatta l'agenzia */
.ns-agency-popup-btn {
    width: 100%;
    margin-top: 15px;
    padding: 12px 20px;
    font-size: 16px;
    font-weight: 600;
}

#nsAgencyModal .modal-dialog {
    display: flex;
    align-items: center;
    min-height: calc(100vh - 1rem);
    margin: 0.5rem auto;

    .modal-content {
        background-color: #f9f9f9;

        .wpcf7-response-output {
            margin: 0 !important;
        }
    }
}

#nsAgencyModal.modal.show {
    display: flex !important;
    align-items: center;
    justify-content: center;
}

#nsAgencyModal .modal-title {
    font-size: var(--text-xl) !important;
    margin-top: 0 !important;
}

#nsAgencyModal .modal-body {
    padding: 30px;

    form > div:nth-child(3),
    form > div:nth-child(4) {
        .col-12 {
            flex: 0 0 auto;
            width: 50%;
        }
    }

    .wpcf7-textarea {
        background: transparent;
    }
}

#nsAgencyModal .property-detail-contact-form {
    margin: 0;

    input:not(.wpcf7-submit) {
        background-color: rgba(255, 255, 255, 0);
    }
}

@media (width<1025px) {
    .ns-agency-popup-btn {
        display: none !important;
    }
}

/* Details icons */
.with-title {
    font-weight: 600 !important;
    display: block !important;
    line-height: 1 !important;
}

.agency-detail-author-info {
    font-size: var(--text-14-18);

    .social-wrapper {
        flex-direction: column;

        .with-title {
            margin-bottom: 0.5em;
        }

        .with-title + * {
            margin-left: 0;
        }

        @media (pointer: coarse) {
            span.with-title {
                margin-bottom: 1rem;
            }

            i.fab {
                font-size: 1.5rem;
                margin-right: 1rem;
            }
        }

        &:not(:has(li)) {
            display: none;
        }
    }

    .phone-mail-wrapper {
        display: grid;
        grid-template-columns: 1fr 1fr;
        line-height: 1;
        margin-top: 1.5rem;
        margin-bottom: 1rem;
        container-name: agency-phone-mail;

        & > div {
            display: flex;
            align-items: center;

            margin-bottom: 0.5em;
        }
    }

    @container agency-phone-mail (max-width: 400px) {
        .phone-mail-wrapper {
            grid-template-columns: 1fr;
            gap: 0.5em;
        }
    }
}

.member-detail-user .social-wrapper a {
    font-size: var(--text-16-20) !important;
}

.member-detail-user > div {
    align-items: flex-start !important;

    a,
    span {
        line-height: 1;
    }

    & + div {
        border-top: none !important;
        margin-top: 1rem !important;
    }
}

.with-icon {
    display: flex;
    align-items: center;
    margin-right: 10px;

    .flaticon-phone,
    .flaticon-tools-and-utensils,
    .ti-email,
    .flaticon-location-pin {
        width: 16px !important;
        height: 18px !important;
        margin-right: 0.5em !important;
        background-size: contain !important;
        background-repeat: no-repeat !important;
        background-position: center;

        &:before {
            content: '' !important;
        }
    }

    .flaticon-phone {
        background-image: url(/wp-content/uploads/icon-phone.svg);
    }

    .flaticon-tools-and-utensils {
        background-image: url(/wp-content/uploads/icon-fax.svg);
    }

    .ti-email {
        background-image: url(/wp-content/uploads/icon-mail.svg);
    }

    .flaticon-location-pin {
        background: url('/wp-content/uploads/pin.svg') no-repeat center center / contain;
    }

    & + .inner {
        font-size: var(--text-14-18);
        color: var(--text-color);

        .with-title {
            margin-bottom: 0.5em;
        }
    }
}

/* MARK: Carousels

*/

@layer extra {
    @media (max-width: 1200px) {
        .swiper-pagination:has(.swiper-pagination-bullet:nth-child(6)) .swiper-pagination-bullet {
            --swiper-pagination-bullet-width: calc(var(--swiper-pagination-bullet-width) * 0.65);
        }
    }

    /* Hide slick dots when only one item exists */
    ul.slick-dots:only-child,
    ul.slick-dots li:only-child,
    ul.slick-dots:has(li:only-child) {
        display: none !important;
    }

    .slick-slide .property-item {
        padding: 0 !important;
        background: transparent !important;
        border: none !important;
    }

    .slick-carousel .slick-dots li {
        border-color: transparent !important;
        padding: 2px !important;

        &:before {
            border: none !important;
        }

        button {
            background-color: var(--gray);
            width: 12px !important;
            height: 12px !important;
        }

        &.slick-active button {
            background-color: var(--primary-color) !important;
        }

        &:is(:hover, :active, :focus) button {
            background-color: var(--primary-dark) !important;
        }
    }
}

@media (min-width: 1200px) {
    .main-menu .megamenu > li {
        margin-right: 30px;
    }
}

.main-menu .megamenu > li img {
    margin-right: 10px;
}

.agency-hover-arrow {
    position: absolute;
    bottom: 15px;
    right: 15px;
    width: 35px;
    height: 35px;
    background: white;
    border-radius: 50%;
    padding: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: 10;
}

.agency-hover-arrow img {
    width: 35px;
    height: 35px;
}

.member-grid {
    position: relative;
}

.member-grid:hover .agency-hover-arrow {
    opacity: 1;
}

@media (max-width: 768px) {
    .slick-slide .agency .agency-information-bottom .agency-title {
        font-size: 2rem !important;
    }

    .agency-name,
    .agency-phone {
        font-size: 1.5rem;
    }

    .footer-builder-wrapper {
        padding: 0 !important;
    }
}

/* Recensioni */

#recensioni:not(:has(.recensione-item)) {
    display: none;
}

.recensione-item {
    background: var(--gray-lighter);
    border-radius: var(--radius-lg);
    padding: 2.5rem 2rem;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.05);
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;

    strong {
        font-weight: 700;
        display: block;
        margin-bottom: 0.5rem;
        font-size: 1rem;
    }

    .stelle img {
        width: 28px;
        margin-right: 3px;
        margin-top: 4px;
    }

    .nome {
        font-size: var(--text-lg);
        font-weight: 550;
    }

    .titolo-recensione {
        font-size: var(--text-size);
        font-weight: 700;
        margin-top: 0.5em;
        display: block;
    }

    .content-recensione {
        font-size: var(--text-14-18);
        font-weight: 400;
        color: #000;
        line-height: var(--leading-tight);
    }
}

.recensioni-swiper .swiper-wrapper {
    padding-bottom: 2rem;
}

.swiper-pagination {
    position: relative;
    margin-top: 2rem;
    text-align: center;
}

.swiper-pagination-bullet {
    width: 12px !important;
    height: 12px !important;
    background: #d4d4d4;
    opacity: 1;
    margin: 0 4px;
    transition: all 0.3s ease;
    aspect-ratio: 1;
    border-radius: 50% !important;
}

.swiper-pagination-bullet-active {
    background: #1f9d55;
}

.swiper-backface-hidden .swiper-slide {
    margin-bottom: 20px;
}

.swiper-initialized.swiper-horizontal.elementor-slideshow--fullscreen-mode .swiper-zoom-container img {
    object-fit: contain !important;
    width: 100% !important;
    height: 100% !important;
}

/* MARK: Mobile
*/

.mobile-sidebar-btn.d-inline-block.d-lg-none {
    display: none !important;
}

.header-mobile > .container {
    width: 100% !important;
    max-width: unset !important;
}

.btn-showmenu .vertical-icon:is(:focus, :active, :hover) {

    &:before,
    &:after {
        background-color: var(--primary-dark) !important;
        height: 3px;
    }
}

#apus-header-mobile,
#apus-header {
    @media (min-width: 1200px) {
        &.d-xl-block {
            display: none !important;
        }

        &.d-xl-none {
            display: block !important;
        }
    }

    @media (min-width: 1400px) {
        &.d-xl-block {
            display: block !important;
        }

        &.d-xl-none {
            display: none !important;
        }
    }
}

@media (width<=767px) {
    .home-hero .form-search .content-main-inner {
        .col-2 {
            width: 90px !important;
        }

        .col-10 {
            width: calc(100% - 90px) !important;
        }
    }

    .slick-carousel .property-item .property-image img,
    .slick-slide img {
        width: 100% !important;
    }
}

.mm-menu .mm-title {
    display: none;
}

/* MARK: Form contatti sidebar
*/

#form-contatti {
    scroll-margin-top: max(250px, 20vh);
}

.elementor-element.agency-contact-form,
.agent-detail-element.agency-detail-contact-form {
    padding: 30px;
}

@media (width<=767px) {

    .elementor-element.agency-contact-form,
    .agent-detail-element.agency-detail-contact-form {
        padding: 30px 15px;
    }
}

.agency-detail-contact-form,
.agency-contact-form {
    border: none !important;

    .title,
    .elementor.heading-title {
        font-size: var(--text-xl) !important;
        font-weight: 600 !important;
        color: var(--primary-color) !important;
        margin-bottom: 1rem !important;
    }

    .wpcf7-response-output {
        background-color: #aaa !important;
    }

    .wpcf7-form {

        input,
        textarea {
            background: transparent !important;
            height: min-content;
            max-height: 100px !important;
        }

        .form-control {
            background: transparent !important;
            background-color: none !important;
            padding-left: 10px;
        }

        .wpcf7-submit {
            width: 100%;
            margin-top: 3.5rem;
            background-color: var(--secondary-color) !important;
            border: none;

            &:is(:hover, :active:focus) {
                background-color: var(--secondary-dark) !important;
            }
        }
    }

    .btn {
        padding: 10px 20px !important;
        line-height: 1 !important;
        height: 3rem;
    }

    .btn.btn-theme.btn-phone,
    .btn.btn-theme.btn-whatsapp {
        padding: 6px 30px;
        background-color: var(--primary-color);
        border: none;
        color: #fff;
        text-transform: none;

        &:is(:hover, :active:focus) {
            background-color: var(--primary-dark);
        }

        span.text {
            font-size: var(--text-16-22) !important;
            font-weight: 600;
        }

        i {
            display: none;
        }
    }
}

/*
.agency-contact-form .btn.btn-theme.btn-phone {
	margin-top: -1rem;
}*/

form.wpcf7-form {
    .file-field {
        position: relative;
        width: 100%;
        max-width: 800px;
        font-family: Arial, sans-serif;
        border-bottom: solid 1px black;

        p {
            margin-top: 0.5rem;
            position: relative;
            min-height: 60px;
            display: flex;
            align-items: flex-end;
            justify-content: space-between;
            padding: 0.85rem 0;
            cursor: pointer;
        }

        p::before {
            content: 'Allega CV';
        }

        .file-name-display {
            display: flex;
            height: 100%;
            vertical-align: middle;
            align-items: flex-end;
            padding-bottom: 0.85rem;
        }

        &:has(.file-name-display:not(:empty)) {
            p::before {
                content: '';
            }
        }

        p::after {
            content: 'Scegli file';
            background: var(--gray);
            color: var(--primary-color);

            text-transform: none;
            padding: 0.25em 1.75em !important;
            font-size: var(--text-base) !important;
            font-weight: 550 !important;
            border-radius: var(--radius);
        }

        p:hover::after {
            background: var(--secondary-color);
        }

        input[type='file'] {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            opacity: 0;
            cursor: pointer;
            z-index: 2;
        }

        .wpcf7-form-control-wrap {
            width: 100%;
            height: 100%;
            position: absolute;
            top: 0;
            left: 0;
        }

        label {
            display: none;
        }
    }

    textarea.text-area-messaggio {
        height: 60px;
        width: 100%;
        max-height: 300px;
        min-height: 60px;
    }
}

.form-control:disabled,
.form-control[readonly] {
    background-color: transparent !important;
    color: var(--text-color) !important;
}

/* Pagina Contatti */
.page-id-7948 form.wpcf7-form textarea.form-control {
    min-height: 6lh !important;
    max-height: 10lh !important;
}

/* MARK: Breadcrumbs
*/
/*
@media (height<800px), (orientation: portrait) {
	.breadcrumb {
		margin-bottom: -2rem !important;
	}
}*/

.apus-breadscrumb .wrapper-breads {
    padding-bottom: 0 !important;
}

.widget-breadcrumbs.widget {
    margin-bottom: 0 !important;
}

.elementor-widget-breadcrumbs {
    margin-bottom: 25px;

    p {
        font-size: 15px;
        color: var(--primary-color);

        span {
            margin-inline: 5px;

            &:first-of-type {
                margin-left: 0;
            }

            &.breadcrumb_last {
                font-weight: bold;
            }
        }
    }
}

@media (min-width: 1200px) {
    .apus-breadscrumb .wrapper-breads {
        padding: 75px 0 !important;
    }
}

.widget-breadcrumbs .breadcrumb {
    display: flex;
    flex-wrap: wrap;
    padding: 0.5rem 0;
    margin-bottom: 1rem;
    list-style: none;
    background-color: #fff;
}

.elementor-element .widget-breadcrumbs .breadcrumb {
    display: flex;
    margin: 0;
}

.widget-breadcrumbs .breadcrumb-item {
    display: flex;
    align-items: center;
}

.widget-breadcrumbs .breadcrumb-item + .breadcrumb-item {
    padding-left: 0.5rem;
}

.breadcrumb > a + li:before,
.breadcrumb > li + a:before,
.breadcrumb > li + li:before {
    display: none !important;
}

.breadcrumb-separator {
    margin-inline: 0.5em;
    color: var(--primary);
}

.widget-breadcrumbs .breadcrumb-item.active {
    color: var(--primary);
    font-weight: bold;
}

.widget-breadcrumbs .breadcrumb a {
    text-decoration: none;
}

.widget-breadcrumbs .breadcrumb a:hover {
    text-decoration: underline;
}

.elementor-widget-ns_seo_breadcrumbs[data-element_type='ns_seo_breadcrumbs.default'] .elementor-widget-container {
    display: flex;
}

.elementor-widget-ns_seo_breadcrumbs[data-element_type='ns_seo_breadcrumbs.default'] .elementor-widget-container .widget-breadcrumbs {
    width: 100%;
}

.elementor-widget-ns_seo_breadcrumbs .breadcrumb[style*='justify-content: center'] {
    justify-content: center !important;
}

.elementor-widget-ns_seo_breadcrumbs .breadcrumb[style*='justify-content: right'] {
    justify-content: flex-end !important;
}

.elementor-widget-ns_seo_breadcrumbs .breadcrumb[style*='justify-content: left'] {
    justify-content: flex-start !important;
}

.elementor-widget-apus_element_breadcrumbs ol.breadcrumb {
    li:not(:last-of-type) {
        &:after {
            content: '>';
            margin-inline: 0.5em;
            color: var(--primary);
            display: inline-block;
        }
    }

    li:last-of-type {
        font-weight: bold;
    }
}

/* MARK: Elenco agenzie

*/

.location-selects-wrapper {
    display: flex;
    gap: 10px;
}

.form-group-province,
.form-group-comune {
    flex: 1;
    position: relative;
}

.icon-form {
    position: absolute;
    left: 15px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    pointer-events: none;
}

.form-group-province .form-control,
.form-group-comune .form-control {
    padding-left: 45px;
}

@media (max-width: 768px) {
    .location-selects-wrapper {
        flex-direction: column;
        gap: 15px;
    }
}

/* Nascondi i campi location duplicati quando è presente il nostro */
.location-selects-wrapper ~ .location-hierarchy-wrapper,
.location-selects-wrapper ~ .ns-location-transformed {
    display: none !important;
}

.element-agencies-listing-wrapper {
    @media (min-width: 1200px) {
        .member-list .member-thumbnail-wrapper {
            width: 200px;
            height: 200px;
            object-fit: cover;
        }
    }

    .agency-thumbnail,
    .agency-thumbnail > a,
    .image-wrapper {
        width: 100% !important;
        height: 100%;
        display: block;
    }

    .member-list .member-thumbnail-wrapper.img-agency {
        border: none;

        * {
            height: 100%;
            width: auto;
            max-width: unset;
        }

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

    .member-list.agency-item.member-item {
        .agency-title {
            font-size: var(--text-24-32);
            font-weight: 600;
            margin-bottom: 0.5rem;
        }

        .metas {
            font-size: var(--text-14-18);
            margin-top: 2rem !important;

            & > div {
                align-items: flex-start;
            }

            .with-title {
                display: block;
                font-weight: 600;
            }

            .with-icon {
                padding: 0;
                background: none;
                line-height: var(--text-14-18);
                width: 1.5rem;

                i {
                    width: 100%;
                    height: 18px;
                    background-position: top left;
                    background-repeat: no-repeat;
                    background-size: contain;
                    color: var(--secondary-color);

                    &::before {
                        display: none;
                    }
                }
            }
        }

        .agency-socials {
            background-color: var(--gray-lighter);
            border-radius: var(--radius);
            padding: 5px 1.5rem;
            font-size: var(--text-16-22);
            font-weight: 600;
            color: var(--primary-color);

            &:not(:has(i)) {
                display: none;
            }

            a {
                margin-left: 0.8rem;

                .fa-facebook-f:before {
                    font-size: 96%;
                }

                &:is(:hover, :active, :focus) i {
                    color: var(--secondary-color);
                }
            }
        }

        .info-bottom {
            border-top: none;
            margin-top: 0.5rem;

            @media (width<600px) {
                .ms-auto {
                    display: none;
                }
            }
        }

        @media (width<420px) {
            .agency-socials {
                width: 100%;
                text-align: center;

                a {
                    margin-left: 0.5rem;
                    margin-right: 0.5rem;
                }

                span {
                    display: none;
                }
            }
        }
    }
}

/* MARK Agenzia singola

*/

.single-agency {

    .agency_title:not(:has(img)) {
        grid-template-columns: 1fr;

        & > div:nth-child(1) {
            order: 2;
        }

        & > div:nth-child(2) {
            order: 1;
        }
    }

    .agency-related-properties .property-agency {
        display: none;
    }

    .agency-logo.agency-thumbnail a {
        cursor: default;
        pointer-events: none;
    }

    .agent-detail-element {
        &.agency-detail-author-info {
            border: 0;
            padding: 0;
            background: transparent;

            @media (width<=1024px) {
                .agency-thumbnail .image-wrapper {
                    height: 600px;
                    max-height: 80vh;

                    img {
                        width: 100%;
                        height: 100%;
                        object-fit: cover;
                        object-position: center;
                    }
                }
            }
        }

        .user-thumbnail.img-agency {
            border: 0;
            border-radius: var(--radius);

            img {
                border-radius: var(--radius-lg);
            }
        }
    }

    .member-detail-user.agency-detail-user {}


    .agency-related-properties .property-agency {
        display: none;
    }
}

/* MARK: Paginations
*/

.pagination > span,
.pagination > a,
.pagination-links > span,
.pagination-links > a,
.apus-pagination > span,
.apus-pagination > a,
.pagination li > span,
.pagination li > a,
.pagination-links li > span,
.pagination-links li > a,
.apus-pagination li > span,
.apus-pagination li > a {
    font-weight: bold !important;
    font-size: var(--text-size) !important;
}

.pagination li > span.current,
.pagination li > a.current,
.pagination-links li > span.current,
.pagination-links li > a.current,
.apus-pagination li > span.current,
.apus-pagination li > a.current,
.pagination > span.current,
.pagination > a.current,
.pagination-links > span.current,
.pagination-links > a.current,
.apus-pagination > span.current,
.apus-pagination > a.current {
    background-color: var(--secondary-color) !important;
    color: var(--primary-color) !important;
}

.pagination,
.pagination-links,
.apus-pagination {
    margin-bottom: 0 !important;
}

/* MARK: Footer
	*/

.apus-footer {
    a:not([class]) {
        color: #fff !important;
        text-decoration: none !important;

        &:is(:focus, :hover, :active) {
            text-decoration: underline !important;
        }
    }

    .apus-footer-inner {
        border-radius: var(--radius);
        overflow: hidden;

        a {
            color: #fff !important;
            text-decoration: none !important;

            &:is(:focus, :hover, :active) {
                text-decoration: underline !important;
            }
        }

        @media (width<=1024px) {
            .e-flex > .e-con-inner:not(:has(.elementor-widget-spacer)):not(:has(.logo)) {
                max-width: calc(100% - 40px) !important;
                margin-inline: auto;
                padding-top: 0;

                .e-child:first-of-type:not(:has(.m-0)) {
                    padding-left: 0 !important;
                }

                .e-child:not(:first-of-type) {
                    padding-left: 0;
                    padding-right: 15px;
                }

                ul.menu li {

                    a {
                        line-height: 1.25em;
                        font-size: var(--text-base) !important;
                    }
                }

                &:has(.elementor-widget-apus_element_social_links) {
                    padding-bottom: 0 !important;
                }
            }

            .e-flex.footer-copy > .e-con-inner {
                gap: 0;

                .e-child {
                    margin: 0;
                }
            }

            .e-con-boxed.e-flex:has(.elementor-widget-spacer) {
                padding: 0;
            }
        }

        @media (width<600px) {
            .e-flex > .e-con-inner:has(.elementor-widget-apus_element_social_links) {
                flex-direction: column;
            }
        }
    }

    @media (min-width: 320px) and (max-width: 767px) {
        #menu-footer-menu {
            columns: 2;
        }
    }
}

.ns-property-locations {
    .subtype-filters {
        padding-bottom: 0;
    }

    .ns-property-locations-links {
        padding-top: 1rem;
    }

    .elementor-widget-container {
        padding-right: 1rem;
    }
}

.properties-locations-links {
    .e-con-inner {
        max-width: 1550px;
    }
}

.footer-builder-wrapper {
    padding: 0 20px 20px 20px;

    &,
    .widget-nav-menu .menu li {
        font-size: clamp(14px, 12.75px + 0.39vw, 18px);
        line-height: 1;
    }

    p,
    .widget-title,
    .elementor-widget-heading .elementor-heading-title {
        color: #fff !important;
        display: block;
    }

    .widget-socials.special {
        transform: none;

        ul {
            display: flex;
            gap: 0.4rem;

            li a {
                &:is(:hover, :active, :focus) {
                    background-color: var(--primary-color) !important;

                    svg {
                        fill: var(--secondary-color);
                    }
                }

                svg {
                    height: 1.5rem;
                    fill: #fff;
                }
            }
        }

        > * {
            padding: 0;
        }
    }

    .footer-copy {
        margin-bottom: 2rem;

        p {
            margin-bottom: 0;
        }
    }

    div.elementor-element.elementor-element-5af21d3 {
        padding-left: 0;
    }

    @media (max-width: 1680px) {
        div.elementor-element.elementor-element-5af21d3 {
            padding-left: 30px;
        }
    }
}

.footer-locations-links {
    .ns-property-locations {
        width: 100%;
    }

    .nav.tabs-theme > li > a {
        color: #000;
        font-size: 18px;
        padding-inline: 15px;
    }

    .ns-property-locations-links {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));

        @media (width>=600px) {
            display: flex;
            column-gap: 1rem;
            row-gap: 2rem;
            flex-wrap: wrap;
            padding-inline: 15px;

            & > div.elementor-element {
                flex: 0 1 130px;

                &.wide {
                    flex: 0 1 280px;

                    ul {
                        columns: 2;
                    }
                }
            }

            &:has(> div.elementor-element:nth-child(4):last-child),
            &:has(> div.elementor-element:nth-child(3):last-child),
            &:has(> div.elementor-element:nth-child(2):last-child),
            &:has(> div.elementor-element:nth-child(1):last-child) {
                & > div.elementor-element {
                    flex: 0 1 22%;
                }
            }
        }
    }

    .subtype-filters {
        margin-bottom: 0;
        margin-top: 1rem;
        padding: 15px;
        background: #f8f9fa;
        border-radius: 8px;
        display: flex;
        flex-wrap: wrap;
        column-gap: 2rem;
    }

    .subtype-filter {
        display: flex;
        align-items: center;
        gap: 0.5em;
        font-weight: 500;
        cursor: pointer;
        transition: all 0.3s ease;
        user-select: none;
    }

    .subtype-filter:hover {
        color: var(--e-global-color-primary);
    }

    .subtype-filter input[type='checkbox'],
    .subtype-filter input[type='radio'] {
        appearance: none;
        -webkit-appearance: none;
        border-radius: 50%;
        width: 1em;
        height: 1em;
        border: 1px solid var(--primary-color);
        background-color: white;
        vertical-align: middle;
        margin-right: 5px;
        margin: 0;
        accent-color: var(--e-global-color-primary);
    }

    .subtype-filter input[type='radio']:checked,
    .subtype-filter input[type='checkbox']:checked {
        background-color: var(--e-global-color-primary);
        border-color: var(--e-global-color-primary);
    }

    .subtype-filter input[type='radio']:checked + span,
    .subtype-filter input[type='checkbox']:checked + span {
        color: var(--e-global-color-primary);
        font-weight: 600;
    }

    .elementor-element.e-con-full.e-flex.e-con.e-parent {
        display: contents !important;
    }

    .elementor-icon-list-items {
        list-style: none;
        padding: 0;
        margin: 0;
        display: block;
        line-height: 1;
    }

    .region-title {
        margin-bottom: 0.6em;
        font-weight: 600;
        line-height: 1.1;
        display: block;
        height: 2rem;
        display: flex;
        align-items: flex-end;
    }

    .elementor-icon-list-item {
        break-inside: avoid;
        margin-bottom: 0.4em;
    }

    @media (max-height: 1200px) and (orientation: landscape) {
        .elementor-icon-list-item {
            margin-bottom: 0 !important;
        }
    }

    .elementor-icon-list-item a {
        text-decoration: none;
        color: #333;
        transition: color 0.3s ease;
    }

    .elementor-icon-list-item a:hover {
        color: var(--e-global-color-primary);
    }

    .elementor-icon-list-text {
        font-size: 14px;
        line-height: 1.4;
    }

    @media (max-width: 768px) {
        .subtype-filters {
            display: grid !important;
            grid-template-columns: repeat(2, 1fr);
            margin-bottom: 2rem;
        }

        .elementor-widget-n-tabs .e-n-tabs-heading {
            display: flex !important;
            flex-direction: column !important;
            gap: 0 !important;
        }

        .ns-property-locations-links {
            column-count: 1;
            column-gap: 2rem;
            display: block;
        }
    }

    @media (min-width: 420px) and (max-width: 768px) {
        .ns-property-locations-links {
            column-count: 2;
            column-gap: 2rem;
            display: block;
        }
    }

    @media (max-width: 480px) {
        .subtype-filters {
            grid-template-columns: 1fr;
        }
    }
}

/* MARK: Mobile
*/

@media (width<600px) {

    .elementor-button,
    .btn {
        width: 100%;
        min-height: 44px;
    }

    .select2-container--default .select2-dropdown {
        /*padding: 5px !important;*/
    }
}

@media (pointer: coarse) {
    .select2-results .select2-results__option {
        padding: 15px 5px !important;
    }
}

@media (width<420px) {
    html {
        zoom: 0.95;
    }
}

@media (width<375px) {
    html {
        zoom: 0.9;
    }
}

.mm-menu {
    border-top-right-radius: var(--radius-lg) !important;
    border-bottom-right-radius: var(--radius-lg) !important;
    overflow: hidden !important;
    max-width: 400px !important;

    .mm-panel {
        background-color: var(--gray-lighter) !important;

        .mm-navbar {
            background: url('/wp-content/uploads/2024/02/logo.svg') no-repeat 40px 100% / 150px auto !important;
            /*background: url('/wp-content/uploads/2024/02/logo.svg') no-repeat 23px 100% /
			150px auto !important;*/
        }

        .mm-listview {
            /*margin-top: 0;*/

            > li > a {
                color: var(--primary-color) !important;
                font-size: 18px !important;
                font-weight: 600 !important;
            }
        }
    }
}

@media (width<375px) {
    .mm-menu.mm-offcanvas {
        width: 85% !important;
        /*border-radius: 0 !important;*/
    }
}

@media (width<=280px) {
    .mm-menu.mm-offcanvas {
        zoom: 0.8;
    }
}

@media (width>1024px) {
    .row > .main-page {
        padding-left: 0;
        padding-right: 0;
    }
}

@media (width<=767px) {
    .row > .main-page {
        padding-left: 0;
        padding-right: 0;
    }

    .row:has(> .main-page) {
        margin-right: calc(var(--bs-gutter-x) * -0.5);
        margin-left: calc(var(--bs-gutter-x) * -0.5);
    }

    .elementor-element > .elementor-widget-container > img.attachment-large {
        width: 100dvw !important;
    }
}

@media (min-width: 460px) and (max-width: 767px) {

    /* Contatori animati (home, affiliarsi, chi siamo) */
    #numbers {
        & > div {
            width: 50%;
            padding-top: 30px !important;
        }
    }
}

@media (max-width: 485px) {

    /* Icone gialle rotonde */
    #icons {
        grid-template-columns: 1fr;
    }
}

/* Accordion / FAQ */
.elementor-widget-n-accordion {
    --n-accordion-border-style: none !important;
    --n-accordion-padding: 25px 25px !important;
    --n-accordion-icon-normal-color: var(--primary-color) !important;
    --n-accordion-icon-active-color: var(--primary-color) !important;
}

.e-n-accordion {
    .e-n-accordion-item {
        .e-n-accordion-item-title {
            border-top-left-radius: var(--radius-xl);
            border-top-right-radius: var(--radius-xl);

            .e-n-accordion-item-title-text {
                font-size: var(--text-16-22);
                color: var(--primary-color);
                font-weight: 600;
            }

            &[aria-expanded='true'] {
                background-color: var(--gray-lighter) !important;
            }
        }

        .e-child {
            background: var(--gray-lighter);
            border-bottom-left-radius: var(--radius-xl);
            border-bottom-right-radius: var(--radius-xl);

            .elementor-widget-text-editor .elementor-widget-container {
                padding: 0 50px 25px 25px !important;
            }
        }

        &:is(:hover, :focus, :active) {
            .e-n-accordion-item-title[aria-expanded='false'] .e-n-accordion-item-title-text {
                color: var(--text-color) !important;
            }
        }
    }
}

/* MARK: News
*/

.single.single-post {
    .detail-title {
        font-size: var(--text-31-47);

    }

    .top-detail-info * {
        font-size: var(--text-base);
        font-weight: 600;
        color: var(--text-color) !important;
    }

    #apus-main-content {
        .e-con > .e-con-inner {
            --content-width: 1580px !important;
        }
    }

    .entry-thumb-header {
        img {
            border-radius: var(--radius-xl) !important;
        }
    }

    .news-pdf-documents {
        .titolo-allegato {
            font-weight: bold;
            margin-bottom: 8px;
            font-size: 16px;

            &::first-letter {
                text-transform: uppercase;
            }
        }
    }
}

.layout-posts-list {
    container-name: news-list;
}

@media (width<768px) {
    .e-con-inner:has(> .news-container) {
        & > div {
            display: grid !important;
        }
    }
}

.blog-posts {
    container-name: news-grid;
}

.layout-posts-list {
    div.top-image {

        .entry-thumb,
        .entry-thumb .image-wrapper {
            height: 100%;
        }
    }

    figure > a > div > img {
        height: 100%;
    }

    @media (width>=768px) {
        .post-list-item .col-content {
            padding-bottom: 0;
        }
    }
}

.post-layout,
.post .list-inner,
.post-list-item {
    .entry-title {
        font-size: var(--text-20-28) !important;
        font-weight: 600 !important;
        line-height: 1em !important;
        height: 2.25lh;
        text-overflow: ellipsis;
        overflow: hidden;

        @media(width>=1200px) {
            height: 3.5lh;
        }
    }

    .top-detail-info {
        margin-bottom: 15px;

        .date,
        a {
            font-size: var(--text-base);
            font-weight: 600;
            color: var(--text-color) !important;
        }
    }

    .description {
        font-size: var(--text-14-18);
        line-height: 1.2em;
        color: var(--text-color);
    }

    .btn.readmore {
        float: right;
        margin-block: 15px;
        padding: 0;
        margin-left: auto;
        display: inline-block;

        a.btn-readmore {
            font-size: var(--text-base);
            font-weight: 600;
        }

        svg {
            transform: rotate(45deg);
            transition: all 0.25s ease;
        }
    }
}

.blog-posts {
    .post {
        @media (width>1024px) {
            margin-bottom: 65px;
        }

        .list-inner {
            .image-wrapper {
                height: 380px;
                max-height: 65vw;
                overflow: hidden;

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

.post,
article {
    &:is(:hover, :active, :focus) {
        .btn.readmore {
            svg {
                transform: rotate(0);
                scale: 1.25;
            }
        }
    }
}

@container news-grid (min-width:800px) {
    .blog-posts {
        & > .row {
            display: grid;
            grid-template-columns: 1fr 1fr;
            column-gap: clamp(0px, -53.3333px + 5.2083vw, 30px);
        }

        .post .list-inner .image-wrapper {
            height: 240px;
            max-height: 65vw;
        }
    }
}

@container news-list (max-width:720px) {
    .post {
        margin-bottom: 25px !important;

        .d-flex {
            flex-direction: column;
            border-radius: 12px !important;

            .top-image,
            .image-wrapper {
                width: 100%;
                height: 380px;
                max-height: 65vw;
                overflow: hidden;

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

    .post-list-item .top-image + .col-content {
        border-width: 0 1px 1px 1px !important;
        border-radius: 0 0 12px 12px !important;
    }
}

@media (height>1400px) {
    .blog-posts .post .list-inner .image-wrapper {
        height: 280px;
        max-height: 70vw;
    }
}

.blog-single-navigation nav.navigation.post-navigation {
    @media (width<=1024px) {
        margin-bottom: 50px;
    }

    .nav-links {
        background: none;

        .link_info {
            .navi {
                font-weight: 600;
                font-size: var(--text-14-18) !important;
                color: var(--gray-darker);
            }

            .title-direct {
                font-weight: 600;
                font-size: var(--text-16-22) !important;
                color: var(--primary-color);
                line-height: 1.25em;
            }
        }

        .title-direct {
            max-width: 98%;
        }

        .nav-previous,
        .nav-next {
            a > div {
                align-items: center;

                i {
                    width: 2.5rem;
                    height: 2.5rem;
                    aspect-ratio: 1/1;
                    background-color: var(--gray-lighter);
                    border-color: var(--gray-lighter);
                    color: var(--text-color);
                    font-weight: bold;
                }
            }

            &:is(:hover, :focus, :active) {
                a > div i {
                    color: var(--primary-color);
                    border-color: var(--primary-color);
                }
            }
        }

        @media (width<480px) {
            .nav-previous {
                display: none !important;
            }

            .nav-next {
                width: 100%;
            }
        }
    }
}

/* MARK: Widgets amd sidebar */

aside.widget {
    border: none !important;
    background: var(--gray-lighter) !important;

    &.widget_apus_search,
    &.widget_search {
        background: none !important;
        padding: 0 !important;
        border-radius: 0 !important;

        .btn.btn-search {
            padding-right: 0 !important;

            i {
                color: var(--text-color);
                font-size: var(--text-14-18);
            }
        }
    }

    .wp-block-group__inner-container > :is(h2, h3, h4, h5, h6),
    .widget-title,
    .wp-block-heading {
        font-size: var(--text-24-32);
        margin-bottom: 25px;
    }

    &.widget_search .wp-block-search__inside-wrapper .wp-block-search__input,
    .widget-search .apus-search.form-control {
        height: auto !important;
        padding: 10px 10px 15px 10px !important;
        border-top: none;
        border-left: none;
        border-right: none;
        border-bottom: 1px solid rgb(0, 0, 0);
        border-radius: 0 !important;
        font-size: var(--text-14-18) !important;
        color: var(--text-color) !important;
        font-weight: 600 !important;
        line-height: 1.25 !important;

        &::placeholder {
            color: var(--text-color) !important;
            font-weight: 600 !important;
        }
    }

    .wp-block-categories {
        li.cat-item a {
            color: var(--text-color) !important;
            font-size: var(--text-14-18) !important;
            font-weight: 600 !important;
        }
    }
}

@media (min-width: 1200px) {
    aside.widget {
        border-radius: var(--radius-xl) !important;
        margin-bottom: 25px !important;
    }
}

/* MARK: Contatti
*/

.e-con-inner:has(.map) {
    margin: 0 !important;
    width: 100% !important;
    max-width: 100% !important;

    .map {
        width: 100%;
        height: 680px;
        border-radius: var(--radius-xl);
        overflow: hidden;

        iframe {
            width: 100%;
            height: 100%;
            margin: 0;
            padding: 0;
        }
    }
}

.map-boxes {
    .e-con-inner {
        padding-inline: clamp(0px, -230.7692px + 30.0481vw, 250px) !important;
        gap: 50px !important;

        .box {
            border: solid 1px var(--gray);
            background: #fff;
            border-radius: var(--radius-xl);

            p,
            a,
            span {
                font-size: var(--text-16-22);
                font-weight: 550;
            }

            .elementor-heading-title {
                margin-bottom: 2rem;
            }

            img {
                width: 70px;
                height: 70px;
                margin-bottom: 2rem;
            }

            @media (width<600px) {
                zoom: 0.9;
            }

            @media (width<480px) {
                zoom: 0.85;
            }
        }

        @media (width<1025px) {
            gap: clamp(15px, -20.7143px + 4.4643vw, 25px) !important;

            .box {
                padding-block: 20px !important;
                padding-inline: 15px !important;

                .e-con-inner > div {
                    padding-inline: 15px !important;
                }
            }
        }
    }
}

@media (width>=1200px) {
    .map-boxes {
        transform: translateY(-45%) !important;
        margin-bottom: -300px !important;
    }
}

@media (min-width: 768px) and (max-width: 1199.98px) {
    .map-boxes {
        margin-top: 50px !important;

        .e-con-inner {
            padding-inline: 0 !important;
        }
    }
}

@media (width<1025px) {
    .map-boxes {
        .e-con-inner .box {
            .elementor-heading-title {
                margin-bottom: 15px;
            }

            img {
                margin-bottom: 15px;
                width: 60px;
                height: 60px;
            }
        }
    }
}

@media (width<=767px) {
    .e-con-full.map {
        margin-inline: 15px;
        width: calc(100% - 30px) !important;

        &,
        iframe {
            height: 400px;
            max-height: 120vw;
        }
    }
}

/* Contatori */

.elementor-widget.elementor-widget-counter .elementor-widget-container .elementor-counter {
    .elementor-counter-title {
        font-size: var(--text-14-18) !important;
    }

    .elementor-counter-number-wrapper {
        font-size: var(--text-24-32) !important;
    }
}

/* MARK: Area riservata
*/

.e-con-inner:has(.approve-user-wrapper):has(.alert > h3:empty) {
    max-height: 50px;
    overflow: hidden;
}

.approve-user-wrapper .alert > h3:not(:empty) {
    font-size: var(--text-14-18);
    font-weight: 500;
    background-color: var(--primary-color);
    color: #fff;
    border-radius: var(--radius);
    padding: 2.5em 1em;
}

.hide_if_no_alert {
    &:not(:has(.alert)) {
        display: none;
    }
}

.page-id-3811 .hide_if_no_alert .alert {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

.elementor-widget-apus_element_realestate_agenciessearch_form form,
form.change-password-form,
form.change-profile-form,
form.login-form,
form.register-form,
form.forgotpassword-form {

    input.form-control,
    select.form-control {
        display: block;
        width: 100%;
        font-family: inherit;
        font-size: var(--text-size);
        outline: none;
        vertical-align: middle;
        border-radius: 0;
        box-shadow: none;
        box-sizing: border-box;
        line-height: 1.4;
        border-width: 0;
        border-bottom: 1px solid #000;
        color: var(--text-color);
        flex-grow: 1;
        flex-basis: 100%;
        max-width: 100%;
        margin: 1.5rem 0 0 0;
        padding: 0.85rem 0;

        &:placeholder {
            color: #000;
        }
    }

    label {
        user-select: none;
    }
}

form.login-form,
form.register-form,
form.forgotpassword-form {

    input.form-control,
    select.form-control {
        background-color: rgba(255, 255, 255, 0) !important;

        &.has-value + .for-control,
        &:focus + .for-control {
            @media (prefers-reduced-motion: no-preference) {
                opacity: 0;
            }
        }
    }

    & > .alert {
        margin-top: 0 !important;
        margin-bottom: 3rem !important;
    }

    &.loading:before {
        background-color: var(--gray-lighter) !important;
        background-image: url(/wp-content/uploads/loading.svg) !important;
        background-size: 6rem 6rem !important;
    }

    .form-group .for-control {
        padding-left: 0;
        left: 0;
        font-size: var(--text-size);
        color: var(--text-color);
        background-color: rgba(255, 255, 255, 0) !important;
    }
}

.login-form-wrapper .lostpassword-link .back-link,
.register-form-wrapper .lostpassword-link .back-link {
    color: var(--primary-color) !important;
}

label:has(#register-terms-and-conditions),
label:has(#user-remember-field) {
    display: flex;
    align-items: center;
    gap: 0.5em;
    font-size: var(--text-xs);
    line-height: 1.1em;
}

.page-template-page-dashboard {
    background-color: #fff !important;

    .container {
        width: min(100%, 1580px) !important;
        max-width: min(100%, 1580px) !important;

        &#main-container {
            padding-block: 50px;

            .row.first-row {
                align-items: stretch;

                .sidebar-wrapper,
                #main-content {
                    flex: 0 0 auto;
                }

                @media (width>=992px) {
                    #main-content {
                        width: calc(100% - 240px);
                    }

                    .sidebar-wrapper {
                        width: 240px;
                    }
                }

                @media (width>=1430px) {
                    #main-content {
                        width: calc(100% - 270px);
                    }

                    .sidebar-wrapper {
                        width: 270px;
                    }
                }
            }
        }

        aside.sidebar {
            background-color: var(--secondary-color) !important;
            border-radius: var(--radius-lg) !important;
            height: 100%;

            ul.menu-dashboard {
                padding: 25px 15px !important;

                li {
                    border-radius: var(--radius);

                    & > a {
                        white-space: normal;
                        line-height: 1.2em;
                        font-weight: 700;
                        font-size: var(--text-base);
                        padding-inline: 10px;
                    }

                    &.active,
                    &:is(:hover, :focus, :active) {
                        background-color: var(--secondary-light) !important;

                        & > a {
                            background-color: var(--secondary-light) !important;
                        }
                    }
                }
            }
        }
    }

    .box-white-dashboard {
        border: none;
        padding: 0;
    }

    .top-dashboard-search {
        gap: 30px;

        .widget-search {
            flex-grow: 2;

            input[type='text'].form-control {
                display: block;
                width: 100%;
                font-family: inherit;
                font-size: var(--text-size);
                outline: none;
                vertical-align: middle;
                border-radius: 0 !important;
                box-shadow: none;
                margin: 0;
                box-sizing: border-box;
                line-height: 1.4;
                border-width: 0;
                border-bottom: 1px solid #000 !important;
                color: var(--text);
                flex-grow: 1;
                flex-basis: 100%;
                max-width: 100%;
                padding: 0.85rem 0 !important;
                font-size: var(--text-size);
            }

            .btn-search {
                color: #000;
                bottom: 5px;
                right: 0;
                transform: none;
                top: unset;
                padding-right: 10px !important;
            }
        }
    }

    form {

        input.form-control,
        select.form-control {
            &::placeholder {
                text-align: left;
                font-weight: 400;
                font-family: inherit;
                font-size: var(--text-size);
                opacity: 1;
                color: var(--text-color);
                transition: opacity 0.5s ease;
                display: block !important;
            }
        }

        label[for='change-profile-form-provincia'],
        label[for='change-profile-form-comune'] {
            transform: translateY(0) !important;
        }
    }

    .form-theme .form-group .for-control,
    .comment-form .form-group .for-control {
        left: 0;
        padding-left: 0;
    }

    /*.alert.alert-info {
		color: var(--text-color) !important;
		padding: 0 !important;
		background-color: transparent !important;
	}*/

    /* Autocomplete dei comuni nel profilo utente */
    .comune-suggestions {
        position: absolute;
        z-index: 1000;
        background: white;
        border: 1px solid #ccc;
        border-top: none;
        max-height: 200px;
        overflow-y: auto;
        width: 100%;
        display: none;
    }

    .suggestion-item {
        padding: 8px 10px;
        cursor: pointer;

        &:hover {
            background-color: #f0f0f0;
        }
    }
}

.alert > * {
    line-height: 1.2em;
    display: block;
    font-size: var(--text-sm);
}

@media (min-width: 1025px),
(max-width: 767px) {
    .login-forms {
        max-width: calc(100% - 30px) !important;
    }
}

.login-forms:not(:has(input.form-control)) {
    display: none !important;
}

/* Calcolatore mutuo */

.apus-mortgage-inner {
    container-name: mortage-calculator;
    container-type: inline-size;

    .mortgage-calculator-chart {
        border: solid 2px var(--gray-dark);
        border-radius: var(--radius-lg);
        padding: 0;
        background-color: var(--gray-lighter);
    }

    .apus_mortgage_results {
        display: flex;
        justify-content: center;
        gap: 50px;
    }

    div.monthly-requency {
        white-space: nowrap;
        color: var(--text-color);
    }

    .monthly-payment-wrap {
        color: var(--primary-color);
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;

        .monthly-payment-val span {
            font-size: var(--text-24-32);
            font-weight: 700;
        }
    }

    form {
        margin: 0;

        input {
            field-sizing: fixed !important;
        }

        label.for-control {
            padding-left: 20px !important;
        }
    }
}

@container mortage-calculator (max-width:680px) {
    .mortgage-calculator-chart-wrapper {
        width: 100%;
        max-width: unset !important;
    }

    .mortgage-calculator-chart {
        aspect-ratio: unset;
        height: 120px;
        max-height: 120px;
        width: 100%;
    }

    .apus_mortgage_results {
        flex-direction: column-reverse;
    }
}

/* MARK: Privacy e cookie policy
*/
#iubenda_policy .iub_content {
    padding: 0 15px !important;

    /*
	p,
	ul > li {
		font-size: var(--text-size);
		line-height: 1.25em;
	}
	:is(h1, h2, h3, h4) {
		margin-bottom: 0.75em;
	}
	h2 {
		font-size: var(--text-xl);
		font-weight: 600;
		color: var(--primary);
		&:not(:first-of-type) {
			margin-top: 1.5em;
		}
	}
	h3:not(.iub-purpose) {
		font-size: var(--text-24-32);
		font-weight: 600;
		color: var(--primary);
		margin-top: 1rem;
	}
	h4 {
		font-size: var(--text-16-22);
		font-weight: 600;
	}
	ul {
		margin-bottom: 1rem;
	}*/
    hr {
        height: 1px !important;
        padding-top: 0;
    }
}


/* MARK: 404
*/

body.error404 {
    height: 100dvh;
    overflow: hidden;

    section.page-404 {
        background-size: cover;
        height: calc(100svh - 180px);
        margin-inline: auto;
    }
}

/* Select2 styles */

.select2-dropdown .select2-search {
    margin-bottom: 1rem;
}

.select2-results .select2-results__option {
    padding-left: 0;
}

@media (max-width: 1200px) {
    .slick-carousel {
        /*opacity: 0;*/
    }
}

/* Slick dots */
/* Mostriamo meno dots */
@media (width<1600px) {
    .slick-carousel.slick-dotted .slick-dots {
        & li {
            display: none !important;
            margin: 0 0.2rem;
            pointer-events: none;
            transition: all 0.3s ease;
        }

        & li.slick-active {
            display: flex !important;
            font-size: 16px;
            opacity: 1;
            pointer-events: auto;
        }

        & li:has(+ li.slick-active),
        & li.slick-active + li {
            display: flex !important;
            font-size: 12px;
            opacity: 0.7;
            pointer-events: auto;
        }

        & li:has(+ li:has(+ li.slick-active)),
        & li.slick-active + li + li {
            display: flex !important;
            font-size: 8px;
            opacity: 0.4;
            pointer-events: auto;
        }
    }
}


.post.no-results.not-found .widget-search {
    margin-top: 50px;
}


/* MARK: Iubenda footer button
*/
body > button.iubenda-tp-btn.iubenda-cs-preferences-link[data-tp-float='bottom-right'] {
    transform: translate(-15px, -15px) !important;
    border: none !important;
    border-radius: 12px !important;
    transition: opacity 0.5s ease !important;

    &:not(:hover, :focus, :active) {
        opacity: 0.65 !important;
    }
}

body:not(.past-top) > button.iubenda-tp-btn.iubenda-cs-preferences-link,
body.dialog-lightbox-body .iubenda-tp-btn {
    display: none !important;
    opacity: 0 !important;
}

@media print {

    body > button.iubenda-tp-btn.iubenda-cs-preferences-link[data-tp-float="bottom-right"],
    .iubenda-tp-btn.iubenda-cs-preferences-link {
        opacity: 0 !important;
        right: -200vw !important;
        display: none !important;
    }
}


@media(height<950px) {
    .saved-search-form-wrapper {
        label {
            margin-bottom: 0;
        }

        form button.w-100 {
            margin-top: 15px;
        }

        .form-group:not(:first-of-type) {
            margin-top: 15px;
        }
    }
}

@media(height<850px) {
    .saved-search-form-wrapper {
        zoom: 0.9;

        p.pb-2 {
            display: none
        }

    }

    .inner-search-advance {
        zoom: 0.9;
    }
}

@media(height<720px) {
    .inner-search-advance {
        zoom: 0.8;
    }
}


.detail-gallery .gallery-property-main-detail,
.property-thumbnail-wrapper .image-wrapper {
    /*background: #F9F9F9 url('/wp-content/uploads/placeholder.png') no-repeat center center;*/
    background: #F9F9F9 url('/wp-content/themes/justhome-child/images/placeholder.png') no-repeat center center;
    background-size: cover;
}
