/* Breakpoint e preferenze di movimento del riferimento. */
@media (max-width:900px) {
    .abitare-reference .a2m-novita-model.e-con { grid-template-columns:minmax(0,1fr); }
    .abitare-reference .a2m-novita.e-con { gap:40px; }
}
@media (max-width:540px) {
    .abitare-reference .a2m-novita-gallery img { height:240px; }
    .abitare-reference .a2m-novita-gallery-pako img { height:400px; }
    .abitare-reference .a2m-novita-cta.e-con { padding:24px 16px; }
}
@media (max-width:900px) {
    .abitare-reference .show.show-confirmed,
    .abitare-reference .a2m-home-section.e-con.show.show-confirmed { grid-template-columns:minmax(0,1fr); }
}
@media (max-width:540px) {
    .abitare-reference .product-quote-dialog { width:calc(100vw - 20px); max-height:calc(100dvh - 20px); }
    .abitare-reference .product-quote-panel { padding:0; }
    .abitare-reference .product-quote-heading { padding:24px 16px 20px; }
    .abitare-reference .product-quote-panel h2 { font-size:28px; }
    .abitare-reference .product-quote-dialog .contact-form { padding:20px 14px; }
    .abitare-reference .product-quote-dialog .contact-fields { grid-template-columns:minmax(0,1fr); gap:18px; }
}
@media (max-width:900px) {
    .abitare-reference .a2m-footer .cols.e-con { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .abitare-reference .a2m-footer .footer-intro.e-con { flex-direction:column; align-items:flex-start; }
    .abitare-reference .a2m-footer .footer-intro > .e-con { width:100%; }
}
@media (max-width:540px) {
    .abitare-reference .a2m-footer .cols.e-con { grid-template-columns:minmax(0,1fr); }
}
@media (max-width:900px) {
    .abitare-reference .a2m-home-section.e-con:is(.split,.seo,.faq,.show) { grid-template-columns:minmax(0,1fr); }
    .abitare-reference .a2m-home-section.e-con:is(.grid4,.cats,.mat,.gal) { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .abitare-reference .a2m-home-section.mat > .e-con { padding:40px 24px; border-bottom:1px solid #2a2a2a; }
}
@media (max-width:540px) {
    .abitare-reference .a2m-home-section.e-con:is(.grid4,.cats) { grid-template-columns:minmax(0,1fr); }
    .abitare-reference .a2m-home-section:is(.hero,.cta) .home-actions { width:100%; }
    .abitare-reference .a2m-home-section:is(.hero,.cta) .home-actions .home-button { width:100%; margin-right:0; }
    .abitare-reference .a2m-home-section:is(.hero,.cta) .home-button .elementor-button { width:100%; }
}


@media (max-width: 1100px) {
    .abitare-reference .menu-toggle {
        display: flex;
        align-items: center;
        gap: 12px;
        background: transparent;
        color: #fff;
        border: 1px solid #777;
        padding: 10px 14px;
        border-radius: 2px;
        font:
            12px "Manrope", sans-serif;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        cursor: pointer;
    }
    .abitare-reference .menu-toggle:focus-visible {
        outline: 2px solid var(--or);
        outline-offset: 4px;
    }
    html.mobile-menu-open {
        overflow: hidden;
    }
    .abitare-reference header #main-nav {
        display: none;
        position: absolute;
        left: 0;
        right: 0;
        top: 100%;
        background: var(--bk);
        padding: 12px var(--pad) max(24px, env(safe-area-inset-bottom));
        max-height: calc(100dvh - var(--header-top, 32px) - var(--header-height, 96px));
        overflow-y: auto;
        overscroll-behavior: contain;
    }
    .abitare-reference header.menu-open #main-nav {
        display: block;
    }
    .abitare-reference header #main-nav > ul {
        display: block;
    }
    .abitare-reference header #main-nav a {
        padding: 12px 0;
    }
    .abitare-reference #main-nav > ul > li > a:after {
        bottom: 6px;
        right: auto;
        width: 32px;
    }
    .abitare-reference header #main-nav ul ul {
        display: block;
        position: static;
        border-top: 0;
        min-width: 0;
        padding: 0 0 0 18px;
    }
    .abitare-reference header #main-nav li:not(.submenu-open) > ul {
        display: none;
    }
    .abitare-reference header #main-nav li.submenu-open > ul {
        display: block;
    }
    .abitare-reference header #main-nav li:has(> ul) > a {
        padding-right: 52px;
    }
    .abitare-reference header #main-nav .submenu-toggle {
        display: grid;
        place-items: center;
        position: absolute;
        right: 0;
        top: 0;
        width: 44px;
        height: 44px;
        border: 0;
        background: none;
        color: var(--or);
        font:
            24px "Manrope", sans-serif;
        cursor: pointer;
    }
    .abitare-reference header #main-nav .submenu-toggle:focus-visible {
        outline: 2px solid var(--or);
        outline-offset: -3px;
    }
    .abitare-reference header #main-nav > ul > li {
        border-bottom: 1px solid #292929;
    }
    .abitare-reference header #main-nav ul ul a {
        font-size: 11px;
        padding: 12px 0;
        color: #ccc;
        min-height: 44px;
    }
    .abitare-reference header #main-nav a,
    .abitare-reference header #main-nav button,
    .abitare-reference .dots button {
        -webkit-tap-highlight-color: rgba(242, 140, 27, 0.15);
    }
    .abitare-reference header #main-nav .fl {
        margin-top: 16px;
    }
}

@media (max-width: 900px) {
    .abitare-reference #main-nav ul {
        display: none;
    }
    .abitare-reference .split,
    .abitare-reference .seo,
    .abitare-reference .faq {
        grid-template-columns: 1fr;
    }
    .abitare-reference .split.rev .im {
        order: 0;
    }
    .abitare-reference .grid4,
    .abitare-reference .cats,
    .abitare-reference .gal,
    .abitare-reference .mat {
        grid-template-columns: 1fr 1fr;
    }
    .abitare-reference .show {
        grid-template-columns: 1fr;
    }
    .abitare-reference footer .cols {
        grid-template-columns: 1fr 1fr;
    }
    .abitare-reference .footer-intro {
        align-items: flex-start;
        flex-direction: column;
    }
    .abitare-reference .card,
    .abitare-reference .cats .card {
        height: 50vh;
    }
    .abitare-reference header .in,
    .abitare-reference header.is-scrolled .in {
        height: 76px;
    }
    .abitare-reference .logo {
        height: 44px;
    }
    .abitare-reference .split {
        min-height: auto;
    }
    .abitare-reference .split .im {
        min-height: 0;
        height: 50vh;
    }
    .abitare-reference .seo,
    .abitare-reference .faq {
        gap: 32px;
    }
    .abitare-reference .reviews {
        min-height: auto;
    }
    .abitare-reference .mat div {
        padding: 40px 24px;
        border-bottom: 1px solid #2a2a2a;
    }
    .abitare-reference .strip {
        white-space: normal;
        line-height: 2.2;
        padding: 14px;
    }
    .abitare-reference .strip span {
        margin: 0 10px;
    }
    .abitare-reference .show > div {
        border-right: 0;
        border-bottom: 1px solid #ddd8d0;
        padding: 40px var(--pad);
    }
}

@media (max-width: 540px) {
    .abitare-reference .top {
        font-size: 10px;
        letter-spacing: 0.02em;
        padding: 8px 12px;
    }
    .abitare-reference {
        --pad: 20px;
    }
    html {
        scroll-padding-top: 88px;
    }
    .abitare-reference .hero {
        height: auto;
        min-height: calc(100svh - 33px);
    }
    .abitare-reference .hero .txt {
        width: 100%;
        padding-top: 140px;
        padding-bottom: 40px;
    }
    .abitare-reference .hero:after {
        background: linear-gradient(
            180deg,
            rgba(0, 0, 0, 0.2),
            rgba(0, 0, 0, 0.55) 40%,
            rgba(0, 0, 0, 0.8)
        );
    }
    .abitare-reference h1 {
        font-size: clamp(36px, 10.5vw, 52px);
        line-height: 1.08;
    }
    .abitare-reference h2 {
        font-size: clamp(28px, 8vw, 36px);
    }
    .abitare-reference .hero .eyebrow {
        font-size: 10px;
        letter-spacing: 0.16em;
        margin-bottom: 14px;
    }
    .abitare-reference .hero p {
        font-size: 17px;
    }
    .abitare-reference .scroll {
        display: none;
    }
    .abitare-reference .btn {
        padding: 13px 20px;
        font-size: 16px;
        gap: 18px;
    }
    .abitare-reference .btn.line {
        padding: 12px 0;
        gap: 22px;
    }
    .abitare-reference .btn {
        max-width: 100%;
        margin-right: 0;
    }
    .abitare-reference .hero .btn,
    .abitare-reference .cta .btn {
        display: flex;
        width: 100%;
        margin-bottom: 12px;
    }
    .abitare-reference .grid4,
    .abitare-reference .cats {
        grid-template-columns: 1fr;
    }
    .abitare-reference .card,
    .abitare-reference .cats .card {
        height: auto;
        aspect-ratio: 4/5;
        max-height: 520px;
    }
    .abitare-reference .card .c {
        left: 24px;
        right: 24px;
        bottom: 28px;
    }
    .abitare-reference .card h3 {
        font-size: 26px;
        padding-right: 26px;
    }
    .abitare-reference .card .c:after {
        font-size: 20px;
    }
    .abitare-reference .card .ref-card-label {
        font-size: 10px;
    }
    .abitare-reference .gal a {
        height: auto;
        aspect-ratio: 3/4;
    }
    .abitare-reference .lightbox {
        padding: calc(76px + env(safe-area-inset-top)) 20px max(20px, env(safe-area-inset-bottom));
    }
    .abitare-reference .lightbox-close {
        top: calc(16px + env(safe-area-inset-top));
    }
    .abitare-reference .split .im {
        height: auto;
        aspect-ratio: 4/3;
    }
    .abitare-reference .split .tx,
    .abitare-reference .sec,
    .abitare-reference .seo,
    .abitare-reference .faq,
    .abitare-reference .reviews .box {
        padding-top: 48px;
        padding-bottom: 48px;
    }
    .abitare-reference .mat div {
        padding: 28px 18px;
    }
    .abitare-reference .mat .ref-material-title {
        font-size: 25px;
    }
    .abitare-reference .mat p {
        font-size: 14px;
    }
    .abitare-reference .zone {
        gap: 8px;
    }
    .abitare-reference .zone a {
        min-height: 44px;
        display: flex;
        align-items: center;
        font-size: 11px;
        padding: 8px 12px;
    }
    .abitare-reference .head {
        margin-bottom: 36px;
    }
    .abitare-reference .track {
        min-height: 0;
    }
    .abitare-reference .slide blockquote {
        font-size: 23px;
        line-height: 1.45;
    }
    .abitare-reference .slide cite {
        font-size: 11px;
        letter-spacing: 0.12em;
    }
    .abitare-reference .ctl {
        gap: 12px;
        margin-top: 28px;
    }
    .abitare-reference .ctl > button {
        width: 44px;
        height: 44px;
        flex-shrink: 0;
    }
    .abitare-reference .dots {
        gap: 0;
    }
    .abitare-reference .rate {
        margin-bottom: 32px;
    }
    .abitare-reference .rate {
        font-size: 11px;
        letter-spacing: 0.06em;
    }
    .abitare-reference summary {
        font-size: 18px;
    }
    .abitare-reference footer {
        padding-top: 48px;
    }
    .abitare-reference footer .cols {
        grid-template-columns: 1fr 1fr;
        gap: 32px 18px;
    }
    .abitare-reference .footer-brand,
    .abitare-reference .footer-details {
        grid-column: 1/-1;
    }
    .abitare-reference footer li > a {
        display: inline-flex;
        align-items: center;
        min-height: 44px;
    }
    .abitare-reference footer li {
        margin-bottom: 0;
    }
    .abitare-reference .footer-details > a {
        min-height: 44px;
        display: flex;
        align-items: center;
    }
    .abitare-reference .footer-intro {
        padding-bottom: 32px;
        margin-bottom: 36px;
    }
    .abitare-reference .footer-contact {
        font-size: 20px;
    }
    .abitare-reference .footer-bottom {
        align-items: flex-start;
        flex-direction: column;
        margin-top: 36px;
    }
    .abitare-reference .footer-social {
        gap: 16px;
    }
    .abitare-reference .copy {
        margin-top: 24px;
    }
}

@media (max-height: 500px) and (max-width: 1100px) {
    .abitare-reference .hero {
        height: auto;
        min-height: 100svh;
    }
    .abitare-reference .hero .txt {
        padding-top: 140px;
        padding-bottom: 40px;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
    .abitare-reference *,
    .abitare-reference *:before,
    .abitare-reference *:after {
        transition: none !important;
        animation: none !important;
    }
}
@media (max-width:540px) { .abitare-reference .hero .txt .eyebrow.eyebrow { font-size:10px; letter-spacing:.16em; margin-bottom:14px; } }
.abitare-reference .ref-no-bottom { padding-bottom:0; }
@media (prefers-reduced-motion:reduce) { .abitare-reference .hero .ref-link > .btn { animation:none; } }

@media (max-width:900px) {
 .abitare-reference .internal-content > .internal-two-columns { grid-template-columns:1fr; gap:36px; }
 .abitare-reference .internal-about-columns .internal-about-left { position:static; }
 .abitare-reference .internal-directory, .abitare-reference .internal-gallery.internal-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .abitare-reference .internal-heading { padding-top:130px; }
}
@media (max-width:640px) {
 .abitare-reference .contact-form { padding:24px 18px; }
 .abitare-reference .contact-fields { grid-template-columns:1fr; gap:20px; }
 .abitare-reference .contact-form .btn { width:100%; text-align:center; }
 .abitare-reference .privacy-dialog { width:calc(100vw - 24px); height:calc(100dvh - 24px); max-height:none; }
 .abitare-reference .privacy-dialog-header { padding:12px 16px; }
 .abitare-reference .privacy-dialog-header h2 { font-size:24px; }
 .abitare-reference .privacy-dialog-content { height:calc(100% - 70px); padding:20px 16px; font-size:15px; }
}
@media (max-width:540px) {
 .abitare-reference .internal-heading { padding:120px var(--pad) 42px; }
 .abitare-reference .blocksy-product-breadcrumb { padding-bottom:24px; }
 .abitare-reference .internal-intro { font-size:17px; }
 .abitare-reference .internal-content { padding:38px var(--pad); }
 .abitare-reference .internal-directory, .abitare-reference .internal-gallery.internal-gallery { grid-template-columns:1fr; }
 .abitare-reference .internal-card, .abitare-reference .internal-cta { padding:24px; }
 .abitare-reference .internal-content > :is(.split,.mat,.cats,.reviews,.faq) { margin-inline:calc(-1 * var(--pad)); }
 .abitare-reference .internal-cta .btn { width:100%; text-align:center; }
 .abitare-reference .scale-card-image { margin:-24px -24px 24px; }
}
