/*
 * Scidoo Preventivatore — visual refresh 2026
 * Questo layer aggiorna l'interfaccia senza alterare il markup funzionale
 * e le personalizzazioni colore generate dal gestionale.
 */

:root {
    --sq-ink: #17201d;
    --sq-ink-soft: #56615d;
    --sq-paper: #ffffff;
    --sq-surface: #f5f3ee;
    --sq-surface-deep: #ebe7df;
    --sq-line: rgba(23, 32, 29, 0.12);
    --sq-shadow-sm: 0 10px 30px rgba(23, 32, 29, 0.08);
    --sq-shadow-lg: 0 30px 80px rgba(23, 32, 29, 0.15);
    --sq-radius-sm: 14px;
    --sq-radius-md: 22px;
    --sq-radius-lg: 32px;
    --sq-header-height: 104px;
    --sq-content: 1240px;
    --sq-ease: cubic-bezier(.2, .7, .2, 1);
    --sq-accent-success: #2f6f52;
    --sq-accent-warn: #8a6d1d;
    --sq-accent-alert: #a33d2c;
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: calc(var(--sq-header-height) + 18px);
}

body {
    background: var(--sq-surface);
    color: var(--sq-ink);
    font-size: 16px;
    line-height: 1.65;
    overflow-x: hidden;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

/* La libreria WOW.js nasconde le sezioni "wow fadeIn" finché non vengono rivelate allo scroll:
   se la rivelazione non scatta (sezioni sotto la piega, dispositivi lenti, ecc.) il contenuto
   resta invisibile. Forziamo la visibilità: si perde la piccola animazione ma niente sparisce più. */
.wow {
    visibility: visible !important;
    opacity: 1 !important;
}

body::before {
    position: fixed;
    z-index: 999999;
    top: 0;
    left: 0;
    width: var(--sq-scroll-progress, 0%);
    height: 3px;
    content: "";
    pointer-events: none;
    background: currentColor;
    color: #c39a72;
    transition: width .1s linear;
}

body,
button,
input,
select,
textarea {
    font-family: "Assistant", "Work Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

button,
a,
[onclick] {
    -webkit-tap-highlight-color: transparent;
}

a,
button {
    transition: color .25s var(--sq-ease), background-color .25s var(--sq-ease), border-color .25s var(--sq-ease), box-shadow .25s var(--sq-ease), transform .25s var(--sq-ease);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[onclick]:focus-visible {
    outline: 3px solid rgba(41, 121, 255, .38) !important;
    outline-offset: 3px;
}

.sq-skip-link {
    position: fixed;
    z-index: 1000000;
    top: 12px;
    left: 12px;
    padding: 11px 18px;
    transform: translateY(-150%);
    border-radius: 999px;
    background: var(--sq-ink);
    color: #fff;
    font-size: 14px;
    font-weight: 700;
}

.sq-skip-link:focus {
    transform: translateY(0);
    color: #fff;
}

/* Header */
.sq-header {
    position: sticky;
    z-index: 900;
    top: 0;
    min-height: var(--sq-header-height);
    border-bottom: 1px solid var(--sq-line);
    background: rgba(255, 255, 255, .9) !important;
    box-shadow: 0 1px 0 rgba(255,255,255,.8);
    backdrop-filter: blur(18px) saturate(130%);
    -webkit-backdrop-filter: blur(18px) saturate(130%);
}

.sq-header .container-fluid {
    max-width: 1440px;
    padding-right: clamp(18px, 3vw, 48px);
    padding-left: clamp(18px, 3vw, 48px);
}

.sq-header .navigation-main {
    min-height: var(--sq-header-height);
}

.sq-header .riga_navbar_principale {
    display: grid;
    grid-template-columns: minmax(140px, 240px) 1fr;
    min-height: var(--sq-header-height);
    margin: 0;
    align-items: center;
    gap: clamp(22px, 4vw, 64px);
}

.sq-header .div_logo_booking {
    height: auto;
    min-height: 72px;
}

.sq-header .div_logo_booking img {
    max-width: min(210px, 100%) !important;
    max-height: 68px !important;
    object-fit: contain;
    object-position: left center;
}

.sq-header .riga_pulsanti_navbar {
    display: grid;
    min-width: 0;
    margin: 0;
    border: 0;
    grid-template-columns: minmax(220px, 1fr) auto;
    align-items: center;
    gap: 24px;
}

.sq-header .riga_sotto {
    display: block;
    height: auto;
    min-width: 0;
    padding: 0;
    grid-column: 1;
    grid-row: 1;
}

.sq-header__eyebrow {
    display: flex;
    margin-bottom: 3px;
    color: var(--sq-ink-soft);
    font-size: 11px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: .14em;
    text-transform: uppercase;
    align-items: center;
    gap: 8px;
}

.sq-header__eyebrow::before {
    width: 22px;
    height: 1px;
    content: "";
    background: currentColor;
}

.sq-header .nome_ospite {
    overflow: hidden;
    margin: 0;
    padding: 0;
    color: var(--sq-ink) !important;
    font-size: clamp(20px, 2vw, 29px);
    font-weight: 500;
    line-height: 1.12;
    letter-spacing: -.025em;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sq-header .riga_sopra {
    position: static;
    display: flex;
    width: auto;
    height: auto;
    min-width: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent !important;
    grid-column: 2;
    grid-row: 1;
    justify-content: flex-end;
}

.sq-header .div_nav_pulsanti {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 7px;
}

.sq-header .riga_sopra .div_nav_pulsanti > div {
    margin: 0;
    padding: 0;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0;
}

.sq-header .div_nav_pulsanti a,
.sq-header .pulsante_ritorna {
    display: inline-flex;
    min-height: 42px;
    padding: 9px 14px;
    border: 1px solid var(--sq-line);
    border-radius: 999px;
    background: rgba(255,255,255,.76);
    color: var(--sq-ink) !important;
    line-height: 1.2;
    text-decoration: none;
    align-items: center;
    gap: 8px;
}

.sq-header .div_nav_pulsanti a:hover,
.sq-header .pulsante_ritorna:hover {
    border-color: rgba(23,32,29,.28);
    background: #fff;
    box-shadow: var(--sq-shadow-sm);
    transform: translateY(-1px);
}

.sq-header .div_nav_pulsanti a {
    min-height: 36px;
    padding: 7px 12px;
}

.sq-header .div_nav_pulsanti i {
    font-size: 11px !important;
}

.sq-header .link_lingua_header {
    width: 36px;
    padding: 7px;
    justify-content: center;
}

.sq-header .icona_lingua_sel {
    width: 19px;
    height: 19px;
    border-radius: 50%;
    object-fit: cover;
}

.sq-header .pulsante_ritorna {
    margin: 0;
    color: var(--sq-ink) !important;
    font-size: 13px;
    font-weight: 700;
}

.sq-header .div_pulsante_ritorna {
    display: flex;
    align-items: center;
}

/* quando c'è il pulsante "Ritorna a Strutture" a sinistra del logo,
   la griglia dell'header guadagna una colonna */
.sq-header .riga_navbar_principale:has(> .div_pulsante_ritorna) {
    grid-template-columns: auto minmax(140px, 240px) 1fr;
}

/* Hero */
.top-space {
    margin-top: 0 !important;
}

.section_foto_video,
.section_foto_video .height_device_home,
.section_foto_video .height_device_slider_mobile {
    height: min(76vh, 780px) !important;
    min-height: 520px;
}

.section_foto_video::after {
    position: absolute;
    z-index: 0;
    inset: 0;
    content: "";
    pointer-events: none;
    background: linear-gradient(180deg, rgba(12,20,17,.08) 45%, rgba(12,20,17,.58) 100%);
}

.section_foto_video .rev_slider_wrapper,
.section_foto_video .rev_slider,
.section_foto_video .tp-revslider-mainul,
.section_foto_video .tp-revslider-slidesli {
    border-radius: 0 0 var(--sq-radius-lg) var(--sq-radius-lg);
}

.container_testo_slider {
    z-index: 2;
}

.container_testo_slider .title-medium {
    font-size: clamp(34px, 5vw, 70px) !important;
    font-weight: 500 !important;
    line-height: 1.02 !important;
    letter-spacing: -.04em;
    text-shadow: 0 3px 28px rgba(0,0,0,.28);
}

.blocco_visualizza_offerta {
    z-index: 3;
    bottom: 28px;
    padding: 0;
    border-radius: 999px;
    background: transparent;
}

.blocco_visualizza_offerta .btn_visualizza_proposte {
    min-height: 58px;
    padding: 12px 22px 12px 16px !important;
    border: 1px solid rgba(255,255,255,.45);
    border-radius: 999px;
    background: rgba(255,255,255,.93) !important;
    box-shadow: 0 14px 44px rgba(0,0,0,.2);
    color: var(--sq-ink) !important;
    font-size: 13px !important;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    backdrop-filter: blur(12px);
}

.blocco_visualizza_offerta .btn_visualizza_proposte:hover {
    background: #fff !important;
    transform: translateY(-3px);
}

.blocco_visualizza_offerta .mouse {
    border-color: var(--sq-ink);
}

.blocco_visualizza_offerta .scroll {
    background: var(--sq-ink);
}

/* Shared sections */
main > section:not(.section_foto_video),
main > div > section,
.top-space > section:not(.section_foto_video),
.top-space > div > section {
    padding-top: clamp(58px, 7vw, 104px);
    padding-bottom: clamp(58px, 7vw, 104px);
}

.top-space .container,
.top-space .container-fluid:not(.container_proposte_fixed_desktop) {
    max-width: var(--sq-content);
}

.top-space .colore_sfondo_principale,
.top-space .colore_sfondo_secondario,
.top-space .colore_punti_forza,
.top-space .colore_sfondo_luoghi,
.top-space .colore_section_video,
.top-space .colore_section_animazioni,
.top-space .colore_sfondo_recensioni,
.top-space .colore_sfondo_album_struttura {
    background-color: var(--sq-surface) !important;
}

.top-space section:nth-of-type(even):not(.section_foto_video),
.top-space > div:nth-of-type(even) section {
    background-color: var(--sq-paper);
}

.titolo_standard {
    color: var(--sq-ink);
    font-size: clamp(30px, 4vw, 52px);
    font-weight: 500;
    line-height: 1.08;
    letter-spacing: -.035em;
    text-transform: none !important;
}

.nome_titolo_categoria {
    color: var(--sq-ink);
    font-size: clamp(20px, 2.2vw, 28px);
    font-weight: 600;
    line-height: 1.15;
    letter-spacing: -.02em;
    text-transform: none !important;
}

.text-outside-line-full::before,
.text-outside-line-full::after {
    display: none;
}

.descrizione_categoria,
.slider_testo_descrizione,
.controlla_colore_titoli {
    line-height: 1.65;
}

/* Intro della proposta */
#proposte_scroller {
    position: relative;
    z-index: 4;
    max-width: min(var(--sq-content), calc(100% - 40px));
    margin: -24px auto 0;
    padding: clamp(34px, 5vw, 70px) !important;
    border: 1px solid rgba(255,255,255,.9);
    border-radius: var(--sq-radius-lg);
    background: rgba(255,255,255,.96) !important;
    box-shadow: var(--sq-shadow-lg);
}

#proposte_scroller .container-fluid {
    padding: 0;
}

#proposte_scroller .row {
    padding: 0 !important;
}

#proposte_scroller .numero_preventivo_creato_da {
    display: inline-flex;
    padding: 7px 12px;
    border: 1px solid var(--sq-line);
    border-radius: 999px;
    color: var(--sq-ink) !important;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

#proposte_scroller .user_preventivo_creato_da {
    margin-top: 10px;
    color: var(--sq-ink-soft) !important;
    font-size: 14px;
}

#proposte_scroller .testo_validita_creato_da {
    margin-top: 7px;
    color: #a33d2c;
    font-size: 15px;
    font-weight: 800;
    letter-spacing: .04em;
}

#proposte_scroller .sq-intro-divider {
    margin: 28px 0;
    border-top: 1px solid var(--sq-line);
}

#proposte_scroller .sq-intro-testo,
#proposte_scroller .sq-intro-testo * {
    font-family: "Assistant", "Work Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
    font-size: clamp(17px, 1.9vw, 22px) !important;
    line-height: 1.65 !important;
    letter-spacing: .005em !important;
    color: var(--sq-ink) !important;
    text-align: inherit !important;
    text-decoration: none !important;
    text-transform: none !important;
    background: transparent !important;
}

#proposte_scroller .sq-intro-testo {
    font-weight: 400;
    font-style: normal;
}

#proposte_scroller .sq-intro-testo strong,
#proposte_scroller .sq-intro-testo b {
    font-weight: 700 !important;
}

#proposte_scroller .sq-intro-testo em,
#proposte_scroller .sq-intro-testo i {
    font-style: italic !important;
}

#proposte_scroller .sq-intro-testo a {
    color: var(--sq-ink) !important;
    text-decoration: underline !important;
    text-underline-offset: 2px;
}

#proposte_scroller .sq-intro-testo p {
    margin: 0 0 .75em;
}

#proposte_scroller .sq-intro-testo p:last-child {
    margin-bottom: 0;
}

/* Quando la descrizione è affiancata ai punti di forza, dimensione coerente con la colonna a destra */
#proposte_scroller .sq-intro-grid:not(.sq-intro-grid--solo-testo) .sq-intro-testo,
#proposte_scroller .sq-intro-grid:not(.sq-intro-grid--solo-testo) .sq-intro-testo * {
    font-size: 15px !important;
    line-height: 1.6 !important;
}

/* Blocco descrizione + punti di forza affiancati */
.sq-intro-grid {
    display: flex;
    align-items: flex-start;
    gap: clamp(28px, 4vw, 56px);
}

.sq-intro-grid__testo {
    flex: 1 1 58%;
    min-width: 0;
}

.sq-intro-grid--solo-testo .sq-intro-grid__testo {
    flex: 1 1 auto;
    max-width: 760px;
    margin: 0 auto;
    text-align: center;
}

.sq-intro-grid--largo .sq-intro-grid__testo {
    flex-basis: 72%;
}

.sq-intro-grid--largo .sq-intro-grid__forza {
    flex-basis: 24%;
}

.sq-intro-grid__forza {
    flex: 0 0 34%;
    min-width: 0;
    padding: clamp(18px, 2.3vw, 28px);
    border: 1px solid var(--sq-line);
    border-radius: 22px;
    background: #f7f9f7;
}

.sq-forza-header {
    display: flex;
    margin-bottom: 16px;
    padding-bottom: 15px;
    border-bottom: 1px solid #dfe5e1;
    align-items: center;
    gap: 10px;
}

.sq-forza-header__icon {
    display: flex;
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    font-size: 13px;
    box-shadow: 0 7px 18px rgba(23,32,29,.12);
}

.sq-forza-titolo {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    color: var(--sq-ink) !important;
    font-size: clamp(14px, 1.35vw, 18px) !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    letter-spacing: -.015em;
    text-transform: none !important;
}

.sq-forza-header__swipe {
    display: none;
    margin-left: auto;
    color: #7a857f;
    font-size: 13px;
}

.sq-forza-scroll {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.sq-forza-scroll--due-colonne {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
}

.sq-forza-card {
    display: flex;
    min-width: 0;
    padding: 9px;
    border: 1px solid #e1e6e3;
    border-radius: 15px;
    background: #fff;
    align-items: center;
    gap: 11px;
    box-shadow: 0 5px 16px rgba(23,32,29,.045);
    transition: border-color .2s var(--sq-ease), box-shadow .2s var(--sq-ease), transform .2s var(--sq-ease);
}

.sq-forza-card:hover {
    border-color: #bcc8c1;
    box-shadow: 0 10px 26px rgba(23,32,29,.09);
    transform: translateY(-2px);
}

.sq-forza-card__visual {
    position: relative;
    flex: 0 0 72px;
    width: 72px;
}

.sq-forza-card__img {
    width: 100%;
    height: 72px;
    border-radius: 11px;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.sq-forza-card__img--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #e6ece8, #f5f7f5);
    color: #6b7a72;
    font-size: 18px;
}

.sq-forza-card__testo {
    flex: 1 1 auto;
    min-width: 0;
}

.sq-forza-card__titolo {
    color: var(--sq-ink) !important;
    font-size: 13.5px !important;
    font-weight: 750 !important;
    line-height: 1.25 !important;
}

.sq-forza-card__desc {
    display: -webkit-box;
    overflow: hidden;
    margin-top: 3px;
    color: var(--sq-ink-soft) !important;
    font-size: 11.5px !important;
    font-weight: 400 !important;
    line-height: 1.4 !important;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
}

.sq-forza-card__desc-hint {
    display: none;
    margin-top: 6px;
    padding: 3px 9px 3px 10px;
    border-radius: 999px;
    color: #fff !important;
    font-size: 10.5px !important;
    font-weight: 700 !important;
    align-items: center;
    gap: 4px;
    width: fit-content;
    opacity: .92;
}

.sq-forza-card__desc-hint i {
    font-size: 8px;
}

.sq-forza-card--troncata {
    cursor: pointer;
}

.sq-forza-card--troncata .sq-forza-card__desc-hint {
    display: inline-flex;
}

.sq-forza-card--troncata:hover .sq-forza-card__desc-hint {
    opacity: 1;
}

/* modale di dettaglio punto di forza, apre la descrizione completa quando troncata */
.sq-forza-overlay {
    position: fixed;
    z-index: 100000;
    top: 0;
    left: 0;
    display: flex;
    width: 100%;
    height: 100%;
    padding: 20px;
    background: rgba(23, 32, 29, .55);
    opacity: 0;
    align-items: center;
    justify-content: center;
    backdrop-filter: blur(2px);
    transition: opacity .2s var(--sq-ease);
}

.sq-forza-overlay--visibile {
    opacity: 1;
}

.sq-forza-modal {
    position: relative;
    width: 100%;
    max-width: 440px;
    max-height: 86vh;
    overflow-y: auto;
    padding: clamp(20px, 3vw, 30px);
    border-radius: var(--sq-radius-md);
    background: var(--sq-paper);
    box-shadow: var(--sq-shadow-lg);
    transform: translateY(10px) scale(.97);
    transition: transform .2s var(--sq-ease);
}

.sq-forza-overlay--visibile .sq-forza-modal {
    transform: translateY(0) scale(1);
}

.sq-forza-modal__img {
    height: 160px;
    margin: -6px -6px 16px;
    border-radius: calc(var(--sq-radius-md) - 8px);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.sq-forza-modal__titolo {
    margin-bottom: 10px;
    padding-right: 26px;
    color: var(--sq-ink) !important;
    font-size: 19px !important;
    font-weight: 750 !important;
    line-height: 1.25 !important;
}

.sq-forza-modal__desc {
    color: var(--sq-ink-soft) !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    line-height: 1.55 !important;
}

.sq-forza-modal__chiudi {
    position: absolute;
    top: 14px;
    right: 14px;
    display: flex;
    width: 30px;
    height: 30px;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 50%;
    background: var(--sq-surface);
    color: var(--sq-ink-soft);
    cursor: pointer;
    font-size: 13px;
    transition: background .15s var(--sq-ease), color .15s var(--sq-ease);
}

.sq-forza-modal__chiudi:hover {
    background: var(--sq-surface-deep);
    color: var(--sq-ink);
}

.sq-forza-scroll--due-colonne .sq-forza-card {
    padding: 8px;
    align-items: stretch;
    flex-direction: column;
}

.sq-forza-scroll--due-colonne .sq-forza-card__visual {
    width: 100%;
    flex-basis: auto;
}

.sq-forza-scroll--due-colonne .sq-forza-card__img {
    height: 100px;
}

.sq-intro-grid--largo .sq-forza-scroll--due-colonne {
    grid-template-columns: 1fr;
}

.sq-intro-grid--largo .sq-forza-scroll--due-colonne .sq-forza-card {
    align-items: center;
    flex-direction: row;
}

.sq-intro-grid--largo .sq-forza-scroll--due-colonne .sq-forza-card__visual {
    width: 66px;
    flex: 0 0 66px;
}

.sq-intro-grid--largo .sq-forza-scroll--due-colonne .sq-forza-card__img {
    height: 66px;
}

@media (min-width: 993px) {
    .sq-intro-grid--forza-tre-colonne {
        align-items: flex-start;
        flex-direction: row;
        gap: clamp(24px, 3vw, 44px);
    }

    .sq-intro-grid--forza-tre-colonne .sq-intro-grid__testo {
        width: auto;
        max-width: 400px;
        flex: 0 1 29%;
    }

    .sq-intro-grid--forza-tre-colonne .sq-intro-grid__forza {
        width: auto;
        flex: 1 1 67%;
        box-sizing: border-box;
    }

    .sq-intro-grid--forza-tre-colonne .sq-forza-scroll--due-colonne {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .sq-intro-grid--forza-tre-colonne .sq-forza-scroll--due-colonne .sq-forza-card {
        padding: 8px;
        align-items: center;
        flex-direction: row;
    }

    .sq-intro-grid--forza-tre-colonne .sq-forza-scroll--due-colonne .sq-forza-card__visual {
        width: 64px;
        flex: 0 0 64px;
    }

    .sq-intro-grid--forza-tre-colonne .sq-forza-scroll--due-colonne .sq-forza-card__img {
        height: 64px;
    }
}

/* Punti di forza e card editoriali */
.colore_punti_forza .row.position-relative > [class*="col-"],
.luoghi_eventi_struttura .oggetto_scroll,
.animazioni_struttura .oggetto_scroll {
    padding: 10px;
}

.colore_punti_forza .row.position-relative > [class*="col-"] > div,
.luoghi_eventi_struttura .oggetto_scroll > div,
.animazioni_struttura .oggetto_scroll > div {
    height: 100%;
    padding: 24px !important;
    border: 1px solid var(--sq-line);
    border-radius: var(--sq-radius-md) !important;
    background: var(--sq-paper);
    box-shadow: var(--sq-shadow-sm);
}

.colore_punti_forza [style*="height:80px"] {
    width: 72px !important;
    height: 72px !important;
    border-radius: 18px !important;
}

.oggetto_scroll img,
.oggetto_scroll .div_immagine,
.colore_sfondo_album_struttura img {
    border-radius: var(--sq-radius-md);
}

/* Selettore e schede offerte */
.slider_proposte,
.dettaglio_proposte {
    background: var(--sq-surface-deep) !important;
}

/* Le tab delle proposte devono comparire subito, senza il grosso spazio ereditato tra le sezioni. */
.slider_proposte {
    padding-bottom: clamp(16px, 2vw, 26px) !important;
}

.dettaglio_proposte {
    padding-top: clamp(16px, 2vw, 26px) !important;
}

.dettaglio_proposte > .container_proposte_fixed_desktop:first-child {
    margin-top: 0 !important;
}

.proposte_fixed_desktop {
    display: flex;
    padding: 5px;
    border: 1px solid var(--sq-line);
    border-radius: 14px;
    background: rgba(255,255,255,.92);
    box-shadow: var(--sq-shadow-sm);
    gap: 5px;
    backdrop-filter: blur(14px);
}

.container_proposte_fixed_desktop {
    position: sticky !important;
    top: 20px !important;
    margin-bottom: 10px !important;
    max-width: var(--sq-content);
    margin-right: auto !important;
    margin-left: auto !important;
    padding: 0 20px;
}

.proposta_fixed {
    min-height: 42px;
    margin: 0;
    padding: 8px 14px;
    border-radius: 9px;
    color: var(--sq-ink-soft);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: none;
}

.proposta_fixed:not(.active):hover {
    box-shadow: none;
}

.proposta_fixed.active {
    border-radius: 9px;
    box-shadow: 0 7px 22px rgba(23,32,29,.16);
}

/* Frecce e pallini degli swiper (foto, recensioni, proposte) */
.swiper-button-black-highlight {
    width: 44px !important;
    height: 44px !important;
    margin-top: -22px !important;
    border: 1px solid var(--sq-line);
    border-radius: 50%;
    background-color: var(--sq-paper) !important;
    box-shadow: var(--sq-shadow-sm);
    opacity: 1 !important;
}

.swiper-button-black-highlight::after {
    color: var(--sq-ink) !important;
    font-size: 15px !important;
}

.swiper-button-black-highlight:hover {
    box-shadow: var(--sq-shadow-lg);
    transform: translateY(-2px);
}

.swiper-pagination-bullet {
    opacity: .35;
    background: var(--sq-ink) !important;
}

.swiper-pagination-bullet-active {
    opacity: 1;
}

/* Card slider proposte (desktop) */
.swiper_proposte {
    padding: 6px 46px !important;
}

.proposta_slider_slide {
    height: auto !important;
    padding: 10px;
}

.proposta_slider_slide .bg-white.box-shadow-light {
    display: flex;
    overflow: hidden;
    height: 100%;
    flex-direction: column;
    border: 1px solid var(--sq-line);
    border-radius: var(--sq-radius-md);
    background: var(--sq-paper) !important;
    box-shadow: var(--sq-shadow-sm);
    cursor: pointer;
    text-align: left !important;
    transition: box-shadow .25s var(--sq-ease), transform .25s var(--sq-ease);
}

.proposta_slider_slide .bg-white.box-shadow-light:hover {
    box-shadow: var(--sq-shadow-lg);
    transform: translateY(-4px);
}

/* Foto e overlay (i div sono senza classe: si aggancia sullo style inline) */
.proposta_slider_slide .bg-white > div[style*="position:relative"] {
    flex-shrink: 0;
}

.proposta_slider_slide .bg-white [style*="background:url("] {
    height: 260px !important;
}

.proposta_slider_slide [style*="a99174"] {
    display: flex !important;
    top: 14px !important;
    left: 14px !important;
    width: 30px !important;
    height: 30px !important;
    align-items: center;
    justify-content: center;
    border-radius: 50% !important;
    background: rgba(23,32,29,.82) !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
}

.migliore_offerta {
    top: 14px !important;
    right: 14px !important;
    left: auto !important;
    width: auto !important;
    height: auto !important;
    padding: 7px 14px !important;
    border-radius: 999px !important;
    background: var(--sq-accent-success) !important;
    box-shadow: var(--sq-shadow-sm);
}

.migliore_offerta .nome_slider_proposte {
    margin: 0 !important;
    font-size: 10px !important;
    font-weight: 800 !important;
    letter-spacing: .08em;
    text-transform: uppercase;
    white-space: nowrap;
}

.colore_sfondo_slider_proposte[style*="ffc600"] {
    right: 14px !important;
    left: auto !important;
    width: auto !important;
    height: auto !important;
    padding: 7px 14px !important;
    border-radius: 999px !important;
    background: var(--sq-accent-warn) !important;
    box-shadow: var(--sq-shadow-sm);
}

.colore_sfondo_slider_proposte[style*="d50000"] {
    right: 14px !important;
    left: auto !important;
    width: auto !important;
    height: auto !important;
    padding: 6px 14px !important;
    border-radius: 999px !important;
    background: var(--sq-accent-alert) !important;
    box-shadow: var(--sq-shadow-sm);
}

.colore_sfondo_slider_proposte[style*="ffc600"] .nome_slider_proposte,
.colore_sfondo_slider_proposte[style*="d50000"] .nome_slider_proposte {
    margin: 0 !important;
    font-size: 10px !important;
    font-weight: 800 !important;
    letter-spacing: .06em;
    text-transform: uppercase;
    white-space: nowrap;
}

/* Barra titolo/prezzo sopra la foto */
.altezza_header_slider {
    display: flex !important;
    height: auto !important;
    padding: 14px 4px 12px !important;
    background: linear-gradient(to top, rgba(0,0,0,.72), rgba(0,0,0,0)) !important;
    align-items: flex-end;
}

.altezza_header_slider .titolo_slider_proposte {
    width: 100%;
    padding: 0 12px;
    border: 0;
}

.altezza_header_slider table.titolo_slider_proposte,
.altezza_header_slider table.titolo_slider_proposte tr,
.altezza_header_slider table.titolo_slider_proposte td {
    display: block;
    width: 100%;
}

.altezza_header_slider .nome_slider_proposte {
    color: #fff !important;
    letter-spacing: .04em;
    text-transform: none;
}

.altezza_header_slider .prezzo_slider_proposte {
    color: #fff !important;
    font-size: clamp(20px, 2.4vw, 26px) !important;
}

/* Descrizione proposta sotto la foto */
.altezza_container_slider {
    flex-grow: 1;
    padding: 6px 6px 0 !important;
}

.altezza_container_slider .slider_testo_descrizione {
    margin-bottom: 12px;
    color: var(--sq-ink);
    font-size: 13px;
    line-height: 1.4;
}

/* Riga pulsanti in fondo alla card */
.proposta_slider_slide .altezza_container_slider + div[style="display:flex"] {
    gap: 10px;
    padding: 14px;
}

.proposta_slider_slide .altezza_container_slider + div[style="display:flex"] > * {
    width: auto !important;
    flex: 1 1 0;
}

.style_richiesta_blocco {
    overflow: hidden;
    max-width: var(--sq-content);
    margin: 22px auto !important;
    border: 1px solid var(--sq-line);
    border-radius: var(--sq-radius-lg);
    background: var(--sq-paper);
    box-shadow: var(--sq-shadow-lg);
}

.style_richiesta_blocco > .col-md-12 {
    display: grid;
    padding: 14px !important;
    border-radius: inherit;
    background: var(--sq-paper) !important;
    grid-template-columns: minmax(0, 1.03fr) minmax(0, .97fr);
    gap: 14px;
}

.style_richiesta_blocco > .col-md-12 > .col-md-6 {
    float: none;
    flex: none;
    width: 100%;
    max-width: none;
    min-width: 0;
    padding: 0;
}

.style_richiesta_blocco .max_height_iframe_div,
.style_richiesta_blocco .swiper-container,
.style_richiesta_blocco .swiper-wrapper,
.style_richiesta_blocco .swiper-slide,
.style_richiesta_blocco figure,
.style_richiesta_blocco .width_img_auto img {
    height: 100% !important;
    min-height: 420px;
}

.style_richiesta_blocco figure {
    margin: 0;
}

/* Desktop: la foto non deve dettare l'altezza della riga — la colonna
   si adatta al contenuto di destra e la foto la riempie in assoluto */
@media (min-width: 993px) {
    .style_richiesta_blocco > .col-md-12 > .col-md-6 {
        position: relative;
    }

    .style_richiesta_blocco .max_height_iframe_div {
        position: absolute;
        inset: 0;
        min-height: 0;
    }
}

.style_richiesta_blocco img,
.style_richiesta_blocco iframe,
.style_richiesta_blocco video {
    border-radius: calc(var(--sq-radius-lg) - 8px);
    object-fit: cover;
}

.blocco_richiesta {
    display: flex;
    min-height: 420px;
    padding: clamp(24px, 3.5vw, 48px);
    border-radius: calc(var(--sq-radius-lg) - 8px);
    background: var(--sq-surface);
    flex-direction: column;
}

.titolo_slider_proposte {
    padding-bottom: 20px;
    border-bottom: 1px solid var(--sq-line);
    align-items: flex-start;
    gap: 20px;
}

.titolo_slider_proposte .nome_slider_proposte,
.blocco_richiesta .nome_slider_proposte {
    margin: 0;
    color: var(--sq-ink);
    font-size: 13px;
    font-weight: 800;
    line-height: 1.3;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.titolo_slider_proposte .prezzo_slider_proposte,
.blocco_richiesta .prezzo_slider_proposte {
    color: var(--sq-ink);
    font-size: clamp(27px, 3vw, 40px);
    font-weight: 600;
    line-height: 1;
    letter-spacing: -.035em;
    white-space: nowrap;
}

.style_richiesta_blocco .titolo_trattamento_blocco {
    margin: 22px 0 8px;
    color: var(--sq-ink);
    font-size: clamp(18px, 2vw, 25px);
    font-weight: 600;
    line-height: 1.25;
    text-transform: none;
}

.style_richiesta_blocco hr {
    border-color: var(--sq-line);
}

.riga_label_periodo,
.slider_testo_titolo_descrizione {
    color: var(--sq-ink-soft);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.style_richiesta_blocco .giorno {
    color: var(--sq-ink);
    font-size: 39px;
    font-weight: 500;
    letter-spacing: -.04em;
}

.style_richiesta_blocco .riga_mese_settimana,
.style_richiesta_blocco .riga_dati_proposta {
    color: var(--sq-ink);
}

.riga_pulsanti_richiesta_blocchi {
    position: static;
    display: flex;
    width: 100%;
    margin-top: auto;
    padding-top: 22px;
    gap: 9px;
}

.pulsante_visualizza_richiesta_blocchi,
.dettagli_richiesta_button,
.style_btn_new,
.btn_visualizza_proposte,
.div_pulsante_carrello,
.pulsante_invia_messaggi {
    min-height: 52px;
    border: 0;
    border-radius: 999px;
    font-size: 13px !important;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: .035em;
    text-transform: none;
}

.pulsante_visualizza_richiesta_blocchi,
.dettagli_richiesta_button {
    display: inline-flex;
    padding: 13px 20px;
    align-items: center;
    justify-content: center;
    gap: 9px;
}

.pulsante_visualizza_richiesta_blocchi:hover,
.dettagli_richiesta_button:hover,
.style_btn_new:hover,
.btn_visualizza_proposte:hover {
    box-shadow: 0 12px 26px rgba(23,32,29,.2);
    transform: translateY(-2px);
}

.container_dettagli_proposta,
.riepilogo_titolo_proposta {
    padding: clamp(22px, 3vw, 38px);
    border: 1px solid var(--sq-line);
    border-radius: var(--sq-radius-md);
    background: var(--sq-paper) !important;
    box-shadow: var(--sq-shadow-sm);
}

@media (min-width: 993px) {
    .container_riga_proposta_foto {
        width: 90% !important;
        max-width: none;
        margin-right: auto !important;
        margin-left: auto !important;
        box-sizing: border-box;
    }

    .contaier-tab-richieste {
        display: block;
        display: flow-root;
        clear: both;
        width: 90% !important;
        max-width: none;
        margin-right: auto !important;
        margin-left: auto !important;
        box-sizing: border-box;
    }

    .modal-body .contaier-tab-richieste {
        width: 100% !important;
        max-width: 100%;
    }
}

/* Nel popup alcuni pannelli sono generati senza utility di margine: questa
   regola mantiene una distanza uniforme anche in quelle combinazioni. */
.popup-details-column .container_dettagli_proposta {
    margin-top: 0 !important;
    margin-bottom: 15px !important;
}

.popup-details-column > div[style*="margin-top:20px"] {
    margin-top: 0 !important;
}

/* Niente box esterno: restano visibili solo i singoli metodi di pagamento,
   ma con un margine laterale così non toccano i bordi del popup */
.contenuto_pagamenti {
    padding: 0 clamp(16px, 2vw, 22px) !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.contenuto_pagamenti .pagamenti_accordion.tipo_verticale {
    margin-bottom: 12px;
}

.contenuto_pagamenti .pagamenti_accordion.tipo_verticale:last-child {
    margin-bottom: 0;
}

/* Riepilogo della proposta */
.preventivo-recap.colore_sfondo_div_riepilogo,
.preventivo-recap {
    min-height: 0;
    padding: clamp(20px, 2.6vw, 30px);
    border: 1px solid var(--sq-line);
    border-radius: var(--sq-radius-md);
    background-clip: padding-box;
    box-shadow: var(--sq-shadow-sm);
}

.preventivo-recap > .row {
    margin-right: -8px;
    margin-left: -8px;
}

.preventivo-recap .visible-xs {
    display: flex !important;
    width: calc(100% - 16px);
    margin: 0 8px 12px !important;
    padding: 0 !important;
    color: var(--sq-ink-soft) !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    letter-spacing: .12em;
    text-transform: uppercase;
    align-items: center;
    gap: 8px;
}

.preventivo-recap .visible-xs::before {
    width: 18px;
    height: 1px;
    content: "";
    background: currentColor;
}

.preventivo-recap .riquadro_proposta_nome {
    width: calc(100% - 16px);
    margin: 0 8px 20px;
    padding: 14px 16px;
    border-radius: 6px;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: .01em;
}

.preventivo-recap .riquadro_proposta_nome > div {
    margin-top: 4px;
    font-size: 12px !important;
    font-weight: 500;
    letter-spacing: .03em;
    opacity: .85;
}

.preventivo-recap .info_preventivo_principali {
    min-height: 78px;
    padding: 10px 12px;
    border-right-color: var(--sq-line) !important;
    color: var(--sq-ink-soft);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .05em;
    line-height: 1.4;
    text-transform: uppercase;
}

.preventivo-recap .info_preventivo_principali .c000 {
    display: block;
    margin-top: 6px;
    color: var(--sq-ink);
    font-size: 15px;
    font-weight: 600;
    letter-spacing: normal;
    line-height: 1.4;
    text-transform: none;
    overflow-wrap: anywhere;
}

.preventivo-recap .info_preventivo_principali .popoversp {
    color: var(--sq-ink-soft);
}

.preventivo-recap hr {
    margin: 16px 0 !important;
    border-color: var(--sq-line) !important;
}

.preventivo-recap .div_prezzi_sidebar {
    margin-top: 8px !important;
    padding: 0 8px !important;
}

.preventivo-recap .riepilogo_prezzi {
    display: flex;
    width: 100%;
    padding: 9px 0;
    border-bottom: 1px solid var(--sq-line);
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
}

.preventivo-recap .div_prezzi_sidebar > .col-xs-12 {
    display: flex;
    width: 100%;
    min-height: 42px;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
}

.preventivo-recap .riepilogo_prezzi > .col-xs-6,
.preventivo-recap .div_prezzi_sidebar > .col-xs-12 > .col-xs-6 {
    float: none;
    width: auto;
    padding: 0;
}

.preventivo-recap .etichetta_listino {
    color: var(--sq-ink-soft);
    font-size: 13px;
    line-height: 1.35;
}

.preventivo-recap .prezzo_carrello_listino {
    margin-left: auto;
    color: var(--sq-ink);
    font-size: 17px;
    font-weight: 700;
    white-space: nowrap;
}

/* riga del totale finale */
.preventivo-recap .div_prezzi_sidebar > [style*="f5f5f5"] {
    margin: 4px -8px 0 !important;
    padding: 14px 8px !important;
    border: 0 !important;
    background: transparent !important;
}

.preventivo-recap .div_prezzi_sidebar > [style*="f5f5f5"] .etichetta_listino {
    color: var(--sq-ink) !important;
    font-size: 15px !important;
}

.preventivo-recap .div_prezzi_sidebar > [style*="f5f5f5"] .prezzo_carrello_listino {
    font-size: clamp(19px, 2.2vw, 23px) !important;
}

.preventivo-recap #pulsante_riepilogo_richiesta {
    margin-top: 16px;
}

.preventivo-recap #pulsante_riepilogo_richiesta > .style_btn_new,
.preventivo-recap #pulsante_riepilogo_richiesta > .btn,
.preventivo-recap #pulsante_riepilogo_richiesta > a {
    display: inline-flex;
    width: 100%;
    min-height: 56px;
    align-items: center;
    justify-content: center;
}

.recap-prev {
    padding-right: 15px;
    padding-left: 15px;
}

@media (min-width: 992px) {
    .recap-prev {
        top: 30px !important;
    }
}

.riquadro_proposta_nome {
    margin: 0 0 18px;
    padding: 10px 14px;
    border-radius: 12px;
    font-size: 13px;
    letter-spacing: .06em;
}

.style_btn_new {
    padding: 15px 24px;
}

.tab_menu_content,
.menu_tab_pagamenti {
    padding: 6px;
    border: 1px solid var(--sq-line);
    border-radius: 16px;
    background: var(--sq-paper);
    gap: 5px;
}

.tab_menu_content .tab_menu,
.menu_tab_pagamenti .tab_menu {
    border: 0;
    border-radius: 11px;
}

/* Form e popup */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="password"],
select,
textarea {
    min-height: 48px;
    padding: 11px 14px;
    border: 1px solid var(--sq-line) !important;
    border-radius: 12px !important;
    background: #fff !important;
    color: var(--sq-ink);
    box-shadow: none !important;
}

textarea {
    min-height: 120px;
}

.white-popup-block,
.modal-content,
.mfp-content > div {
    border-radius: var(--sq-radius-md);
}

.mfp-bg {
    background: rgba(12,20,17,.72);
    backdrop-filter: blur(8px);
}

.mfp-bg.sq-photo-lightbox {
    z-index: 10050 !important;
}

.mfp-wrap.sq-photo-lightbox {
    z-index: 10051 !important;
}

.mfp-wrap.sq-photo-lightbox .mfp-close {
    position: fixed !important;
    top: max(14px, env(safe-area-inset-top)) !important;
    right: 14px !important;
    width: 44px !important;
    height: 44px !important;
    padding: 0 !important;
    border-radius: 50%;
    background: rgba(0, 0, 0, .68);
    color: #fff;
    font-size: 30px;
    line-height: 44px !important;
    text-align: center !important;
}

body.sq-photo-lightbox-open .sq-header,
body.sq-photo-lightbox-open .popup__view {
    pointer-events: none;
}

body.sq-photo-lightbox-open {
    overscroll-behavior: none;
}

body.sq-photo-lightbox-open .mfp-wrap {
    pointer-events: auto;
}

/* Pulsante di chiusura popup: prima era fuori dal riquadro (right:-50px) e su schermi stretti
   restava invisibile perché tagliato dall'overflow. Ora sta dentro, in alto a destra. */
.popup__chiudi {
    position: absolute !important;
    top: 12px !important;
    right: 12px !important;
    left: auto !important;
    z-index: 20;
    display: flex !important;
    width: 34px;
    height: 34px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(0,0,0,.32);
}

.popup__chiudi i {
    font-size: 15px !important;
    color: #fff;
}

.popup__chiudi:hover {
    background: rgba(0,0,0,.5);
}

/* Prenota Ora — modulo dati ospite, pagamento, conferma */
.tag_input {
    margin-bottom: 6px;
    color: var(--sq-ink-soft);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.form-group {
    margin-bottom: 16px;
}

input.check_style_div {
    width: 40px;
    height: 23px;
    border-color: var(--sq-line);
    box-shadow: inset -23px 0 0 0 #fff;
}

input.check_style_div:checked {
    border-color: var(--sq-accent-success);
    box-shadow: inset 17px 0 0 0 var(--sq-accent-success);
}

.popoversp {
    text-decoration-color: var(--sq-line);
    text-underline-offset: 2px;
}

.termini_check {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px dashed var(--sq-line);
    color: var(--sq-ink-soft);
    font-size: 12px;
    line-height: 1.5;
}

.termini_check strong {
    color: var(--sq-ink);
}

.descrizioni_deposito_cancellation,
.termini_check p {
    color: var(--sq-ink-soft) !important;
    font-size: 12px;
    line-height: 1.5;
}

.link_click_be {
    display: inline-block;
    margin-top: 4px;
    color: var(--sq-ink);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
}

.div_campi_carta {
    margin: 4px 0 !important;
}

.risposta_carta:not(:empty) {
    margin-bottom: 12px;
    padding: 12px 14px;
    border: 1px solid var(--sq-accent-alert);
    border-radius: 12px;
    background: rgba(163,61,44,.08);
    color: var(--sq-accent-alert);
    font-size: 13px;
    font-weight: 700;
}

.titolo_classic,
.titolo_info_sx {
    margin-bottom: 12px !important;
    color: var(--sq-ink) !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    letter-spacing: .05em;
    text-transform: uppercase !important;
}

/* Box assicurazione (in prenota_ora.php è senza classe dedicata, si aggancia sullo style inline) */
div[style*="border:1px solid #bdac98"] {
    border: 1px solid var(--sq-line) !important;
    border-radius: var(--sq-radius-md) !important;
    overflow: hidden;
}

div[style*="border:1px solid #bdac98"] .form-group[style*="background: #bdac98"] {
    margin-bottom: 0 !important;
    background: var(--sq-ink) !important;
}

div[style*="border:1px solid #bdac98"] .form-group[style*="background: #bdac98"] .tag_input {
    color: #fff !important;
    letter-spacing: .06em;
}

/* Tab e riepilogo del metodo di pagamento */
.tab_pagamento {
    padding: 4px 2px;
}

/* Modalità a tab (non verticale): l'unico pannello visibile mantiene il proprio riquadro */
.contenuto_pagamenti > .tab_pagamento {
    padding: clamp(18px, 2.4vw, 28px);
    border: 1px solid var(--sq-line);
    border-radius: var(--sq-radius-md);
    background: var(--sq-paper);
}

.pagamenti_accordion.tipo_verticale {
    border: 1px solid var(--sq-line);
    border-radius: var(--sq-radius-md);
    overflow: hidden;
}

.pagamenti_accordion.tipo_verticale .titolo_pag {
    padding: 14px 16px;
    border-bottom: 1px solid var(--sq-line);
    color: var(--sq-ink);
    font-weight: 700;
}

.conferma_pagamenti_be {
    padding: 14px 2px 2px;
}

.pagamento_deposito {
    margin: 10px 0;
    padding: 12px 14px;
    border-radius: 12px;
    background: var(--sq-surface);
    color: var(--sq-ink);
    font-weight: 700;
}

.info_pagamento {
    color: var(--sq-ink-soft);
    font-size: 12px;
    line-height: 1.5;
}

.return_div_pagamento:not(:empty) {
    margin-top: 10px;
}

.style_pulsante_pagamento_effettivo {
    min-height: 52px;
    border-radius: 999px !important;
    font-weight: 800;
}

/* Lista orari servizi richiesti */
.lista_servizi_orari {
    padding: 10px 12px;
    border: 1px solid var(--sq-line);
    border-radius: 12px;
    margin-bottom: 8px;
}

.nome_servizio_standard {
    color: var(--sq-ink);
    font-weight: 700;
}

.orari_select_servizi,
.style_select_orari,
.seleziona_orario_preferenza {
    min-height: 42px !important;
    padding: 8px 10px !important;
}

/* Servizi inclusi nella proposta */
.proposal-services {
    padding: clamp(20px, 3vw, 34px) !important;
    background: #f7f9f7 !important;
}

.proposal-services__header {
    display: flex;
    margin-bottom: 22px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--sq-line);
    align-items: center;
    gap: 13px;
}

.proposal-services__eyebrow {
    margin-bottom: 4px;
    color: var(--sq-ink-soft);
    font-size: 10px;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.proposal-services__header .titolo_info_sx {
    margin: 0;
    color: var(--sq-ink);
    font-size: clamp(20px, 2.2vw, 28px);
    font-weight: 600;
    line-height: 1.1;
    letter-spacing: -.02em;
    text-transform: none;
}

.proposal-services__group {
    margin: 0;
}

.proposal-services .panel.servizi_acc {
    overflow: hidden;
    margin: 0 0 12px !important;
    border: 1px solid #dfe5e1 !important;
    border-radius: 16px !important;
    background: #fff !important;
    box-shadow: 0 7px 22px rgba(23,32,29,.05);
}

.proposal-services .panel.servizi_acc:last-child {
    margin-bottom: 0 !important;
}

.proposal-services .panel.servizi_acc > .panel-heading {
    min-height: 0;
    padding: 16px !important;
    border: 0 !important;
    background: #fff !important;
    cursor: pointer;
}

.proposal-services .panel-title {
    padding: 0 !important;
}

.proposal-services .panel-heading .div_flex_browser,
.proposal-services .panel-heading .testo_accordion_servizi {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start !important;
    gap: 16px;
}

.proposal-service__main {
    min-width: 0;
}

.proposal-services .nome_servizio_standard {
    color: var(--sq-ink) !important;
    font-size: 15px;
    font-weight: 750;
    line-height: 1.35;
    letter-spacing: 0;
    text-transform: none;
}

.proposal-services .nome_servizio_standard > div[style*="font-size: 10px"] {
    display: table;
    margin-top: 6px;
    padding: 4px 7px;
    border-radius: 999px;
    background: #eef2ef;
    color: #657169;
    font-size: 9px !important;
    line-height: 1.15 !important;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.proposal-services .sotto_titolo_info_sx,
.proposal-services .testo_vicino_accordion {
    margin-top: 6px;
    color: var(--sq-ink-soft);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.5;
}

.proposal-service__aside {
    display: flex;
    min-width: 92px;
    text-align: right;
    align-items: flex-end;
    flex-direction: column;
    gap: 7px;
}

.proposal-service__aside .prezzo_trattamento_servizio,
.proposal-service__aside.prezzo_servizi_extra,
.proposal-service__aside > .prezzo_servizi_extra {
    color: var(--sq-ink) !important;
    font-size: 21px;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -.025em;
    white-space: nowrap;
}

.proposal-service__aside .strike {
    color: #8a938e;
    font-size: 11px;
}

.proposal-services .proposal-service__details-toggle {
    display: inline-flex;
    width: auto;
    min-height: 30px;
    margin-top: 12px;
    padding: 6px 10px;
    border-radius: 999px;
    background: #eef2ef;
    color: #4d5b53;
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
    align-items: center;
    gap: 5px;
    cursor: pointer;
}

.proposal-services .proposal-service__details-toggle i {
    color: #4d5b53;
    font-size: 9px;
}

.proposal-services .panel-collapse > .panel-body,
.proposal-services .panel-collapse > .col-md-12 {
    float: none;
    width: 100%;
    padding: 18px !important;
    border-top: 1px solid #e4e9e6 !important;
    background: #fbfcfb;
    color: #4f5c55;
    font-size: 13px;
    line-height: 1.65;
}

.proposal-services .panel-body .panel.servizi_acc,
.proposal-services .panel_rette .panel.servizi_acc {
    margin-bottom: 8px !important;
    border-radius: 12px !important;
    box-shadow: none;
}

.proposal-services .panel-body .panel-heading,
.proposal-services .panel_rette .panel-heading {
    padding: 12px !important;
}

.proposal-services .allegato_servizio {
    display: inline-flex;
    margin: 4px 5px 0 0;
    padding: 7px 10px;
    border: 1px solid #d8dfda;
    border-radius: 999px;
    background: #f7f9f7;
    align-items: center;
    gap: 6px;
}

.proposal-services .pulsante_elimina {
    display: inline-flex;
    width: auto;
    min-width: 0;
    min-height: 34px;
    margin: 0;
    padding: 7px 10px !important;
    border: 1px solid #e7cac7 !important;
    border-radius: 999px;
    background: #fff7f6 !important;
    color: #9d3f37 !important;
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
    align-items: center;
    justify-content: center;
    gap: 6px;
    box-shadow: none;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease;
}

.proposal-services .pulsante_elimina i {
    color: inherit !important;
    font-size: 11px;
}

.proposal-services .pulsante_elimina:hover,
.proposal-services .pulsante_elimina:focus {
    border-color: #dba7a2 !important;
    background: #fceae8 !important;
    color: #812c25 !important;
    box-shadow: none;
    transform: none;
}

.proposal-services__total {
    position: relative;
    display: flex;
    overflow: hidden;
    margin-top: 18px;
    padding: 17px 18px 17px 22px;
    border: 1px solid #dfe5e1;
    border-radius: 14px;
    background: #fff;
    color: var(--sq-ink);
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    box-shadow: 0 7px 20px rgba(23,32,29,.055);
}

.proposal-services__total-accent {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 5px;
}

.proposal-services__total .titolo_info_sx,
.proposal-services__total .prezzo_servizi_extra {
    margin: 0;
}

.proposal-services__total .titolo_info_sx {
    color: var(--sq-ink-soft) !important;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.proposal-services__total .prezzo_servizi_extra {
    color: var(--sq-ink) !important;
    font-size: 22px;
    font-weight: 750;
}

@media (max-width: 620px) {
    .proposal-services {
        padding: 18px 12px !important;
    }

    .proposal-services__header {
        margin: 0 4px 16px;
        padding-bottom: 16px;
    }

    .proposal-services .panel.servizi_acc {
        border-radius: 14px !important;
    }

    .proposal-services .panel.servizi_acc > .panel-heading {
        padding: 14px !important;
    }

    .proposal-services .panel-heading .div_flex_browser,
    .proposal-services .panel-heading .testo_accordion_servizi {
        grid-template-columns: minmax(0, 1fr);
        gap: 11px;
    }

    .proposal-service__aside {
        width: 100%;
        min-width: 0;
        padding-top: 11px;
        border-top: 1px solid #edf0ee;
        text-align: left;
        align-items: center;
        justify-content: space-between;
        flex-direction: row;
    }

    .proposal-service__aside .prezzo_trattamento_servizio,
    .proposal-service__aside.prezzo_servizi_extra,
    .proposal-service__aside > .prezzo_servizi_extra {
        font-size: 18px;
    }

    .proposal-services .panel-collapse > .panel-body,
    .proposal-services .panel-collapse > .col-md-12 {
        padding: 15px !important;
    }

    .proposal-services__total {
        margin: 16px 0 0;
        padding: 15px;
    }
}

/* Pulsante finale di conferma */
.conferma {
    display: flex;
    height: auto;
    min-height: 56px;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: var(--sq-accent-success) !important;
    color: #fff;
    font-size: 15px !important;
    font-weight: 800;
    letter-spacing: .03em;
    text-transform: none;
    box-shadow: var(--sq-shadow-sm);
    transition: transform .2s var(--sq-ease), box-shadow .2s var(--sq-ease);
}

.conferma:hover,
.conferma:focus,
.conferma:active {
    background: var(--sq-accent-success) !important;
    box-shadow: var(--sq-shadow-lg);
    transform: translateY(-2px);
}

@media (max-width: 620px) {
    .div_informazioni_cliente {
        padding-left: 4px !important;
        padding-right: 4px !important;
    }

    .tag_input {
        font-size: 10px;
    }
}

/* Chat */
.apri_chat {
    right: clamp(16px, 2.5vw, 34px);
    bottom: clamp(16px, 2.5vw, 34px);
    width: 68px;
    height: 68px;
    border: 1px solid rgba(255,255,255,.34);
    border-radius: 22px;
    box-shadow: 0 18px 44px rgba(23,32,29,.25);
    font-size: 24px;
    line-height: 1;
}

.apri_chat:hover {
    box-shadow: 0 22px 50px rgba(23,32,29,.32);
    transform: translateY(-4px) rotate(-1deg);
}

.apri_chat .contenuto_notifica_chat {
    display: flex;
    height: 100%;
    margin: 0;
    align-items: center;
    flex-direction: column;
    justify-content: center;
}

.apri_chat .mess {
    margin-top: 6px !important;
    font-size: 10px;
    line-height: 1;
    letter-spacing: .04em;
}

.notifica_mess.back:not(:empty) {
    top: -7px;
    right: -7px;
    border: 3px solid #fff;
}

/* Finestra chat: header, log, fumetti e composer in stile messaggistica */
.sq-chat-header {
    display: flex !important;
    height: auto !important;
    min-height: 64px;
    padding: 14px 56px 14px 20px !important;
    gap: 12px;
    background: var(--sq-ink) !important;
    color: #fff;
    font-size: 16px !important;
    font-weight: 700 !important;
    text-transform: none !important;
    align-items: center;
}

.sq-chat-header__avatar {
    display: flex;
    width: 34px;
    height: 34px;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(255,255,255,.16);
    font-size: 14px;
}

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

.sq-chat-modal {
    display: flex;
    height: min(620px, 72vh);
    padding: 0 !important;
    flex-direction: column;
    overflow: hidden;
}

.sq-chat-log {
    height: auto !important;
    min-height: 0;
    padding: 18px !important;
    background: var(--sq-surface) !important;
    flex: 1 1 auto;
}

.container_chat {
    position: relative;
    display: block;
    clear: both;
    max-width: 78%;
    min-width: 0;
    margin: 0 0 12px;
    padding: 9px 13px;
    border: 1px solid var(--sq-line);
    border-radius: 16px;
    background: var(--sq-paper) !important;
    box-shadow: var(--sq-shadow-sm);
}

.container_chat.sx {
    float: left;
    border-bottom-left-radius: 4px;
}

.container_chat.dx {
    float: right;
    border: 1px solid rgba(47,111,82,.2);
    background: rgba(47,111,82,.12) !important;
    border-bottom-right-radius: 4px;
}

.user_chat {
    margin-bottom: 2px;
    color: var(--sq-ink-soft);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.mess_chat {
    margin: 0;
    color: var(--sq-ink);
    font-size: 14px;
    line-height: 1.4;
    overflow-wrap: anywhere;
    white-space: pre-line;
}

.data_chat {
    position: static;
    margin-top: 4px;
    color: var(--sq-ink-soft);
    font-size: 10px;
    text-align: right;
}

.sq-chat-composer {
    display: flex;
    flex-shrink: 0;
    padding: 12px 16px;
    border-top: 1px solid var(--sq-line);
    background: var(--sq-paper);
    align-items: center;
    gap: 10px;
}

.sq-chat-input {
    height: auto !important;
    min-height: 44px;
    max-height: 120px;
    padding: 11px 16px !important;
    border: 1px solid var(--sq-line) !important;
    border-radius: 20px;
    background: var(--sq-surface);
    color: var(--sq-ink);
    font-family: inherit;
    font-size: 14px;
    line-height: 1.4;
    resize: none;
}

.sq-chat-input:focus {
    border-color: var(--sq-ink) !important;
    outline: none;
}

.sq-chat-send {
    display: flex;
    width: 44px;
    height: 44px;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 50%;
    background: var(--sq-accent-success) !important;
    color: #fff;
    font-size: 16px;
    cursor: pointer;
    box-shadow: var(--sq-shadow-sm);
    transition: transform .2s var(--sq-ease), box-shadow .2s var(--sq-ease), background-color .2s var(--sq-ease);
}

.sq-chat-send:hover {
    background: #275c44 !important;
    box-shadow: var(--sq-shadow-lg);
    transform: translateY(-2px);
}

@media (max-width: 767px) {
    .popup__view.sq-chat-popup {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        display: flex !important;
        width: 100% !important;
        max-width: none !important;
        height: 100dvh !important;
        margin: 0 !important;
        border-radius: 0 !important;
        padding: 0 !important;
        flex-direction: column;
    }

    .popup__view.sq-chat-popup .sq-chat-header {
        flex-shrink: 0;
        margin: 0 !important;
        padding-top: max(14px, env(safe-area-inset-top)) !important;
        border-radius: 0;
    }

    .popup__view.sq-chat-popup .sq-chat-modal {
        height: auto !important;
        flex: 1 1 auto;
        min-height: 0;
    }

    .popup__view.sq-chat-popup .sq-chat-composer {
        padding-bottom: max(12px, env(safe-area-inset-bottom));
    }

    .popup__view.sq-chat-popup .popup__chiudi {
        top: max(12px, env(safe-area-inset-top));
    }
}

/* Footer */
.sq-footer {
    position: relative;
    overflow: hidden;
    border-radius: var(--sq-radius-lg) var(--sq-radius-lg) 0 0;
    color: rgba(255,255,255,.74);
}

.sq-footer::before {
    position: absolute;
    top: -180px;
    right: -100px;
    width: 440px;
    height: 440px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 50%;
    content: "";
}

.sq-footer .footer-widget-area {
    padding: clamp(64px, 8vw, 112px) 0 34px;
}

.sq-footer__grid {
    position: relative;
    display: grid;
    grid-template-columns: minmax(240px, 1.1fr) minmax(260px, 1fr) minmax(260px, 1.2fr);
    gap: clamp(34px, 6vw, 88px);
}

.sq-footer__brand,
.sq-footer__contact,
.sq-footer__location {
    min-width: 0;
}

.sq-footer__logo {
    display: block;
    max-width: 210px;
    max-height: 72px;
    margin-bottom: 30px;
    object-fit: contain;
    object-position: left center;
}

.sq-footer__label {
    margin-bottom: 18px;
    color: rgba(255,255,255,.48);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.sq-footer__title {
    margin-bottom: 18px;
    color: #fff;
    font-size: clamp(22px, 2.5vw, 32px);
    font-weight: 500;
    line-height: 1.15;
    letter-spacing: -.025em;
}

.sq-footer__address {
    margin-bottom: 20px;
    color: rgba(255,255,255,.7);
    font-size: 15px;
    line-height: 1.6;
}

.sq-footer a,
.sq-footer .colore_link_footer {
    color: rgba(255,255,255,.78) !important;
}

.sq-footer a:hover {
    color: #fff !important;
}

.sq-footer__contact-list > div,
.sq-footer__contact-list > a,
.sq-footer__contact-list .text-medium {
    margin-bottom: 9px !important;
    font-size: 14px;
}

.sq-footer__privacy {
    display: inline-flex;
    padding-bottom: 3px;
    border-bottom: 1px solid rgba(255,255,255,.3);
    font-size: 14px;
}

.sq-footer .medium-icon {
    display: flex;
    margin: 24px 0 0;
    gap: 9px;
}

.sq-footer .medium-icon li {
    margin: 0;
}

.sq-footer .medium-icon a {
    display: inline-flex;
    width: 40px;
    height: 40px;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 50%;
    align-items: center;
    justify-content: center;
}

.sq-footer .medium-icon a:hover {
    border-color: rgba(255,255,255,.5);
    background: rgba(255,255,255,.08);
    transform: translateY(-2px);
}

.sq-footer .framemappa {
    overflow: hidden;
    height: 220px !important;
    border: 0;
    border-radius: var(--sq-radius-md);
    filter: saturate(.75) contrast(.95);
}

.sq-footer__legal {
    display: flex;
    margin-top: 28px;
    padding-top: 22px;
    border-top: 1px solid rgba(255,255,255,.12);
    color: rgba(255,255,255,.48);
    font-size: 12px;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

@media (max-width: 1180px) {
    :root {
        --sq-header-height: 92px;
    }

    .sq-header .riga_navbar_principale {
        grid-template-columns: minmax(120px, 180px) 1fr;
        gap: 24px;
    }

    .sq-header .riga_navbar_principale:has(> .div_pulsante_ritorna) {
        grid-template-columns: auto minmax(120px, 180px) 1fr;
    }

    .sq-header .riga_pulsanti_navbar {
        grid-template-columns: minmax(180px, 1fr) auto;
        gap: 15px;
    }

    .sq-header .div_nav_pulsanti a {
        width: 38px;
        padding: 9px;
        font-size: 0;
        justify-content: center;
    }

    .sq-header .div_nav_pulsanti a i,
    .sq-header .div_nav_pulsanti a img {
        margin: 0;
        font-size: 13px !important;
    }
}

@media (max-width: 992px) {
    :root {
        --sq-header-height: 78px;
        --sq-radius-lg: 24px;
    }

    html {
        scroll-padding-top: 90px;
    }

    .sq-header {
        min-height: var(--sq-header-height);
    }

    .sq-header .container-fluid {
        padding-right: 15px;
        padding-left: 15px;
    }

    .sq-header .navigation-main,
    .sq-header .riga_navbar_principale {
        min-height: var(--sq-header-height);
    }

    .sq-header .riga_navbar_principale {
        display: grid !important;
        grid-template-columns: 92px minmax(0, 1fr) auto;
        gap: 11px;
    }

    .sq-header .riga_navbar_principale:has(> .div_pulsante_ritorna) {
        grid-template-columns: auto 82px minmax(0, 1fr) auto;
    }

    .sq-header .div_pulsante_ritorna .pulsante_ritorna {
        width: 42px;
        height: 42px;
        min-height: 42px;
        max-width: none;
        padding: 0;
        justify-content: center;
    }

    .sq-header .div_pulsante_ritorna .pulsante_ritorna span {
        display: none;
    }

    .sq-header .div_logo_booking {
        width: auto;
        min-height: 0;
        margin: 0;
        padding: 0;
        justify-content: flex-start;
    }

    .sq-header .div_logo_booking img {
        max-width: 88px !important;
        max-height: 48px !important;
    }

    .sq-header .riga_pulsanti_navbar {
        display: contents;
    }

    .sq-header .riga_sotto {
        display: block;
        overflow: hidden;
        margin: 0;
        padding: 0;
        text-align: left;
        white-space: normal;
        grid-column: 2;
    }

    .sq-header__eyebrow {
        display: none;
    }

    .sq-header .nome_ospite {
        font-size: 16px;
    }

    .sq-header .riga_sopra {
        position: static;
        display: block;
        width: auto;
        padding: 0 !important;
        grid-column: 3;
    }

    .sq-header .div_nav_pulsanti > div:not(:last-child) {
        display: none;
    }

    .sq-header .div_nav_pulsanti {
        gap: 6px;
    }

    .sq-header .div_nav_pulsanti > .sq-header__phone {
        display: block;
    }

    .sq-header .riga_sopra .div_nav_pulsanti > div:last-child {
        display: block;
        margin: 0;
    }

    .sq-header .div_nav_pulsanti a {
        width: 42px;
        height: 42px;
        min-height: 42px;
        padding: 0;
    }

    .sq-header .div_nav_pulsanti a img {
        width: 20px;
        height: 20px;
    }

    .section_foto_video,
    .section_foto_video .height_device_home,
    .section_foto_video .height_device_slider_mobile {
        height: min(68vh, 620px) !important;
        min-height: 480px;
    }

    #proposte_scroller {
        max-width: calc(100% - 24px);
        margin-top: -16px;
        padding: 28px 20px !important;
    }

    #proposte_scroller .text-right {
        text-align: left !important;
    }

    #proposte_scroller .sq-intro-testo,
    #proposte_scroller .sq-intro-testo * {
        font-size: 16px !important;
        line-height: 1.55 !important;
    }

    .sq-intro-grid,
    .sq-intro-grid--largo {
        display: block;
    }

    .sq-intro-grid--solo-testo .sq-intro-grid__testo {
        max-width: none;
        text-align: left;
    }

    .sq-intro-grid__forza {
        position: relative;
        margin-top: 26px;
        padding: 18px;
        border: 1px solid var(--sq-line);
        border-radius: 19px;
        background: #f7f9f7;
    }

    .sq-intro-grid__forza::after {
        position: absolute;
        top: 72px;
        right: 0;
        bottom: 12px;
        width: 24px;
        content: "";
        border-radius: 0 0 18px 0;
        background: linear-gradient(to right, transparent, #f7f9f7 78%);
        pointer-events: none;
    }

    .sq-forza-header {
        margin-bottom: 14px;
        padding-bottom: 13px;
    }

    .sq-forza-header__swipe {
        display: block;
    }

    .sq-forza-scroll {
        display: flex !important;
        flex-direction: row;
        grid-template-columns: none !important;
        margin: 0 -18px;
        padding: 2px 18px 8px;
        overflow-x: auto;
        overflow-y: hidden;
        gap: 14px;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
        -ms-overflow-style: none;
    }

    .sq-forza-scroll::-webkit-scrollbar {
        display: none;
    }

    .sq-forza-card {
        flex: 0 0 calc((100% - 28px) / 3);
        width: calc((100% - 28px) / 3);
        min-width: 0;
        padding: 6px;
        align-items: stretch;
        flex-direction: column;
        gap: 8px;
        scroll-snap-align: start;
        scroll-snap-stop: always;
    }

    .sq-forza-card__visual,
    .sq-intro-grid--largo .sq-forza-scroll--due-colonne .sq-forza-card__visual {
        width: 100%;
        flex: 0 0 auto;
    }

    .sq-forza-card__img {
        width: 100%;
        height: 88px;
    }

    .sq-intro-grid--largo .sq-forza-scroll--due-colonne .sq-forza-card {
        align-items: stretch;
        flex-direction: column;
    }

    .sq-forza-card__desc {
        font-size: 11px !important;
        line-height: 1.35 !important;
        -webkit-line-clamp: 2;
    }

    /* Galleria foto: una foto alla volta, scorrimento a slider come i punti di forza */
    .album_struttura .abilita_scroll_mobile_column {
        display: flex !important;
        margin: 0 -20px;
        padding: 4px 20px 10px !important;
        gap: 14px;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
        -ms-overflow-style: none;
    }

    .album_struttura .abilita_scroll_mobile_column::-webkit-scrollbar {
        display: none;
    }

    .album_struttura .oggetto_scroll {
        display: block !important;
        float: none !important;
        flex: 0 0 auto !important;
        width: calc(100% - 40px) !important;
        margin: 0 !important;
        scroll-snap-align: center;
        scroll-snap-stop: always;
    }

    .album_struttura .div_immagine {
        height: 240px !important;
        border-radius: var(--sq-radius-md);
    }

    .style_richiesta_blocco > .col-md-12 {
        display: block;
    }

    .style_richiesta_blocco .max_height_iframe_div,
    .style_richiesta_blocco .swiper-container,
    .style_richiesta_blocco .swiper-wrapper,
    .style_richiesta_blocco .swiper-slide,
    .style_richiesta_blocco figure,
    .style_richiesta_blocco .width_img_auto img {
        min-height: 200px;
        max-height: 220px;
    }

    .blocco_richiesta {
        min-height: 0;
        padding: 26px 20px;
    }

    .riga_pulsanti_richiesta_blocchi {
        display: flex;
    }

    .pulsante_visualizza_richiesta_blocchi {
        width: auto;
        flex: 1;
    }

    .swiper_proposte {
        padding: 4px 40px !important;
    }

    .proposta_slider_slide .bg-white [style*="background:url("] {
        height: 165px !important;
    }

    .altezza_container_slider .padding-10px-all {
        padding: 16px !important;
    }

    .proposte_visione_mobile {
        position: sticky;
        z-index: 80;
        top: calc(var(--sq-header-height) + 6px);
        margin: 10px 0 16px;
        padding: 0 10px;
    }

    .lista_proposte_mobile {
        min-height: 52px;
        margin: 0;
        padding: 8px 12px !important;
        border: 1px solid var(--sq-line);
        border-radius: 16px;
        box-shadow: var(--sq-shadow-sm);
        font-size: 14px;
        line-height: 1.3;
        text-transform: none;
        backdrop-filter: blur(14px);
    }

    .lista_proposte_mobile [onclick] {
        display: inline-flex;
        width: 42px;
        height: 42px;
        border-radius: 50%;
        align-items: center;
        justify-content: center;
    }

    .container_riga_proposta_foto {
        padding-right: 10px;
        padding-left: 10px;
    }

    .contaier-tab-richieste {
        display: flex;
        width: 100%;
        max-width: 100%;
        margin: 0;
        padding-top: 18px !important;
        box-sizing: border-box;
        flex-direction: column;
    }

    .contaier-tab-richieste > [class*="col-"] {
        float: none;
        width: 100%;
        max-width: none;
        box-sizing: border-box;
    }

    .recap-prev {
        margin-bottom: 18px;
        padding-right: 10px;
        padding-left: 10px;
    }

    .preventivo-recap.colore_sfondo_div_riepilogo,
    .preventivo-recap {
        width: 100%;
        max-width: 100%;
        padding: 20px 16px;
        border-radius: 22px;
        box-sizing: border-box;
    }

    .preventivo-recap .riquadro_proposta_nome {
        margin-bottom: 16px;
    }

    .preventivo-recap .info_preventivo_principali {
        min-height: 76px;
        padding: 9px 8px;
    }

    .container_dettagli_proposta .panel-heading,
    .preventivo-recap button,
    .preventivo-recap a.style_btn_new {
        min-height: 48px;
    }

    .modal-body {
        padding-right: 14px;
        padding-bottom: calc(110px + env(safe-area-inset-bottom)) !important;
        padding-left: 14px;
    }

    .modal-body .contaier-tab-richieste {
        padding-right: 0;
        padding-left: 0;
    }

    /* Il popup segue l'altezza effettiva della foto: le immagini orizzontali
       non lasciano più un'area vuota prima dei dettagli. */
    .popup-gallery-frame {
        height: auto;
    }

    .popup-gallery-frame .galleria-alloggi {
        margin-top: 0 !important;
    }

    .popup-gallery-frame .swiper-wrapper {
        margin-bottom: 0 !important;
    }

    .popup-gallery-frame .swiper-slide {
        width: 100% !important;
        padding-right: 0 !important;
    }

    .popup-gallery-frame .width_img_auto img,
    .popup-gallery-frame .width_img_auto iframe,
    .popup-gallery-frame .width_img_auto video {
        display: block;
        width: 100% !important;
        height: 220px !important;
        max-height: 220px !important;
        border-radius: 18px;
        object-fit: cover;
    }

    .popup-gallery-section + .contaier-tab-richieste {
        padding-top: 15px !important;
    }

    .riga_fixed {
        z-index: 1200;
        bottom: 0 !important;
        padding: 0 8px env(safe-area-inset-bottom) !important;
    }

    .riga_fixed .div_riga {
        padding: 10px !important;
        border: 1px solid rgba(255,255,255,.18);
        border-radius: 20px 20px 0 0 !important;
        background: rgba(23,32,29,.96) !important;
        box-shadow: 0 -14px 40px rgba(23,32,29,.22) !important;
        backdrop-filter: blur(16px);
    }

    .riga_fixed .row {
        display: flex;
        margin: 0;
        align-items: center;
    }

    .riga_fixed .col-xs-4,
    .riga_fixed .col-xs-8 {
        padding: 0 5px;
    }

    .riga_fixed .valore {
        margin: 0 !important;
        font-size: 18px !important;
        line-height: 1.25;
        white-space: normal !important;
    }

    .riga_fixed .etichetta {
        display: block;
        font-size: 10px !important;
        font-weight: 700;
        letter-spacing: .08em;
        text-transform: uppercase;
    }

    .riga_fixed .style_btn_new,
    .riga_fixed .btn {
        width: 100%;
        min-height: 52px;
        padding: 12px 10px !important;
        border-radius: 999px;
    }

    body.controlla_scroll_popup .apri_chat {
        display: none !important;
    }

    .sq-footer__grid {
        grid-template-columns: 1fr 1fr;
    }

    .sq-footer__location {
        grid-column: 1 / -1;
    }
}

@media (max-width: 620px) {
    body {
        font-size: 15px;
        padding-bottom: env(safe-area-inset-bottom);
    }

    .section_foto_video,
    .section_foto_video .height_device_home,
    .section_foto_video .height_device_slider_mobile {
        height: 66vh !important;
        min-height: 430px;
    }

    .blocco_visualizza_offerta {
        width: auto;
        bottom: 18px;
    }

    .blocco_visualizza_offerta .btn_visualizza_proposte {
        min-height: 52px;
        padding: 10px 18px 10px 13px !important;
        font-size: 11px !important;
    }

    .top-space .container,
    .top-space .container-fluid:not(.container_proposte_fixed_desktop) {
        padding-right: 16px;
        padding-left: 16px;
    }

    main > section:not(.section_foto_video),
    main > div > section,
    .top-space > section:not(.section_foto_video),
    .top-space > div > section {
        padding-top: 48px;
        padding-bottom: 48px;
    }

    .style_richiesta_blocco {
        margin: 14px 8px !important;
    }

    .style_richiesta_blocco > .col-md-12 {
        padding: 8px !important;
    }

    .style_richiesta_blocco .max_height_iframe_div,
    .style_richiesta_blocco .swiper-container,
    .style_richiesta_blocco .swiper-wrapper,
    .style_richiesta_blocco .swiper-slide,
    .style_richiesta_blocco figure,
    .style_richiesta_blocco .width_img_auto img {
        min-height: 170px;
        max-height: 190px;
    }

    .sq-forza-card {
        flex-basis: calc((100% - 20px) / 3);
        width: calc((100% - 20px) / 3);
        padding: 5px;
        gap: 6px;
    }

    .sq-forza-scroll {
        gap: 10px;
    }

    .sq-forza-card__img {
        height: 72px;
    }

    .sq-forza-card__titolo {
        font-size: 11px !important;
        line-height: 1.25 !important;
    }

    .sq-forza-card__desc {
        display: none;
    }

    .titolo_slider_proposte {
        display: block !important;
    }

    .titolo_slider_proposte .prezzo_slider_proposte {
        margin-top: 10px;
        text-align: left;
    }

    .riga_dati_proposta > [class*="col-"] {
        margin-bottom: 14px;
    }

    .riga_pulsanti_richiesta_blocchi {
        flex-direction: column;
    }

    .pulsante_visualizza_richiesta_blocchi,
    .riga_pulsanti_richiesta_blocchi > * {
        width: 100% !important;
    }

    .container_dettagli_proposta,
    .riepilogo_titolo_proposta {
        padding: 22px 16px;
        border-radius: 18px;
    }

    .preventivo-recap.colore_sfondo_div_riepilogo,
    .preventivo-recap {
        padding: 16px 12px;
        border-radius: 20px;
    }

    .preventivo-recap > .row {
        display: grid;
        width: 100%;
        margin-right: 0;
        margin-left: 0;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    }

    .preventivo-recap > .row > * {
        float: none;
        min-width: 0;
        max-width: 100%;
        box-sizing: border-box;
    }

    .preventivo-recap > .row > .visible-xs,
    .preventivo-recap > .row > .riquadro_proposta_nome,
    .preventivo-recap > .row > .col-xs-12,
    .preventivo-recap > .row > .col-md-12 {
        width: 100% !important;
        grid-column: 1 / -1;
    }

    .preventivo-recap > .row > .info_preventivo_principali {
        width: 100% !important;
        grid-column: auto;
    }

    .preventivo-recap .riquadro_proposta_nome {
        width: 100%;
        margin-right: 0;
        margin-left: 0;
        padding: 12px 14px;
        border-radius: 6px;
        font-size: 12px;
    }

    .preventivo-recap .info_preventivo_principali {
        min-height: 72px;
        padding: 8px 6px;
        font-size: 10px;
    }

    .preventivo-recap .info_preventivo_principali .c000 {
        font-size: 13px;
    }

    .preventivo-recap .etichetta_listino {
        font-size: 12px;
    }

    .preventivo-recap .prezzo_carrello_listino {
        font-size: 15px;
    }

    .preventivo-recap .riepilogo_prezzi {
        padding: 8px 0;
        gap: 10px;
    }

    .recap-prev,
    .contaier-tab-richieste > [class*="col-"] {
        width: 100% !important;
        max-width: 100% !important;
        padding-right: 8px;
        padding-left: 8px;
        box-sizing: border-box;
    }

    .recap-prev {
        width: calc(100vw - 24px) !important;
        max-width: calc(100vw - 24px) !important;
        margin-right: auto;
        margin-left: auto;
    }

    .galleria-alloggi,
    .galleria-alloggi .swiper-container,
    .galleria-alloggi .swiper-slide {
        max-height: 290px;
    }

    .galleria-alloggi img,
    .galleria-alloggi iframe,
    .galleria-alloggi video {
        width: 100% !important;
        max-width: 100%;
        max-height: 290px !important;
        border-radius: 18px;
        object-fit: cover;
    }

    .popup__header {
        position: sticky;
        z-index: 10;
        top: 0;
        min-height: 54px;
        padding: 15px 18px;
    }

    .modal-body .popup-gallery-frame {
        height: auto !important;
    }

    .panel-heading,
    .tiposerv_aggiungi_servizio,
    .tab_menu {
        min-height: 48px;
    }

    .div_flex_browser {
        gap: 10px;
    }

    .div_flex_browser .div_prezzo_flex {
        max-width: 42%;
        overflow-wrap: anywhere;
    }

    .apri_chat {
        right: 14px;
        bottom: calc(14px + env(safe-area-inset-bottom));
        width: 58px;
        height: 58px;
        border-radius: 18px;
    }

    .apri_chat .mess {
        display: none;
    }

    .sq-footer__grid {
        grid-template-columns: 1fr;
    }

    .sq-footer__location {
        grid-column: auto;
    }

    .sq-footer__legal {
        align-items: flex-start;
        flex-direction: column;
    }
}

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

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