:root {
    --g-ink: #1c2b27;
    --g-border: rgba(255,255,255,.36);
    --g-border-soft: rgba(255,255,255,.20);
    --g-box: rgba(255,255,255,.20);
    --g-box2: rgba(255,255,255,.12);
    --g-shadow: 0 12px 30px rgba(0,0,0,.12);
    --g-shadow-soft: 0 6px 16px rgba(0,0,0,.08);
    --g-bg: linear-gradient(135deg, #dffaf3 0%, #c8f3e6 30%, #b8eae0 60%, #e6fff8 100%);
    --g-accent: linear-gradient(70deg, #7ee0c2 0%, #4fd4b2 50%, #9bf0da 100%);
    --g-glass-highlight: linear-gradient(140deg, rgba(255,255,255,.55), rgba(255,255,255,0) 50%);
    --r18: 14px;
    --r14: 10px;
    --g-blur: blur(11px);
}

.module.theme-a {
    --g-ink: #2c3531;
    --g-border: rgba(255,255,255,.46);
    --g-border-soft: rgba(255,255,255,.28);
    --g-box: rgba(255,255,255,.24);
    --g-box2: rgba(255,255,255,.16);
    --g-shadow: 0 8px 20px rgba(0,0,0,.06);
    --g-shadow-soft: 0 4px 12px rgba(0,0,0,.05);
    --g-bg: linear-gradient(160deg, #f2fbf5 0%, #fff8e7 100%);
    --g-accent: linear-gradient(90deg, #edf8f1 0%, #fff4dc 100%);
    --g-glass-highlight: linear-gradient(140deg, rgba(255,255,255,.50), rgba(255,255,255,0) 50%);
}

.module.theme-b {
    --g-ink: #352f33;
    --g-border: rgba(255,255,255,.44);
    --g-border-soft: rgba(255,255,255,.26);
    --g-box: rgba(255,255,255,.23);
    --g-box2: rgba(255,255,255,.15);
    --g-shadow: 0 8px 20px rgba(0,0,0,.06);
    --g-shadow-soft: 0 4px 12px rgba(0,0,0,.05);
    --g-bg: linear-gradient(160deg, #fff7fb 0%, #f3ecff 100%);
    --g-accent: linear-gradient(90deg, #fdeff6 0%, #ece3ff 100%);
    --g-glass-highlight: linear-gradient(140deg, rgba(255,255,255,.50), rgba(255,255,255,0) 50%);
}

.module.theme-c {
    --g-ink: #2f3236;
    --g-border: rgba(255,255,255,.46);
    --g-border-soft: rgba(255,255,255,.28);
    --g-box: rgba(255,255,255,.24);
    --g-box2: rgba(255,255,255,.16);
    --g-shadow: 0 8px 20px rgba(0,0,0,.06);
    --g-shadow-soft: 0 4px 12px rgba(0,0,0,.05);
    --g-bg: linear-gradient(160deg, #f3f8ff 0%, #e9fbf5 100%);
    --g-accent: linear-gradient(90deg, #edf4ff 0%, #e0f7ee 100%);
    --g-glass-highlight: linear-gradient(140deg, rgba(255,255,255,.50), rgba(255,255,255,0) 50%);
}

@media (max-width: 991.98px) {

    [id^="mod_"] {
        zoom: 1.10;
    }
}

/* BASE (unificato, niente backdrop-filter) */
.module[data-module="text"],
.module[data-module="richtext"],
.module[data-module="image"],
.module[data-module="youtube-text"],
.module[data-module="video-file"],
.module[data-module="immagini"],
.module[data-module="gallery"],
.module[data-module="elencoprodotti_001"],
.module[data-module="button"],
.module[data-module="cta-coupon"],
.module[data-module="cta-visit-site"],
.module[data-module="pdf-download"] {
    border: 1px solid var(--g-border);
    background: var(--g-bg);
    color: var(--g-ink);
    position: relative;
    overflow: hidden;
}

/* radius + shadow per famiglia */
.module[data-module="text"],
.module[data-module="image"],
.module[data-module="youtube-text"],
.module[data-module="video-file"],
.module[data-module="immagini"],
.module[data-module="gallery"],
.module[data-module="elencoprodotti_001"],
.module[data-module="button"],
.module[data-module="cta-coupon"],
.module[data-module="cta-visit-site"],
.module[data-module="pdf-download"] {
    border-radius: var(--r18);
    box-shadow: var(--g-shadow);
}

.module[data-module="richtext"] {
    border-radius: var(--r14);
    box-shadow: 0 6px 16px rgba(16,32,16,.10);
}

/* ---------------- TEXT ---------------- */
.module[data-module="text"] {
    border-radius: var(--r18);
    box-shadow: var(--g-shadow);
}

    .module[data-module="text"] .lead,
    .module[data-module="text"] .module-text,
    .module[data-module="text"] p {
        margin: 0;
        padding: 0;
        position: relative;
    }

        .module[data-module="text"] .lead:not(:empty) {
            padding: .7rem .9rem;
            font-size: 1.15rem;
            letter-spacing: .15px;
            color: var(--g-ink);
            border-radius: var(--r14);
            border: 1px solid var(--g-border-soft);
            background: var(--g-accent);
        }

        .module[data-module="text"] .lead + .module-text {
            margin-top: .6rem;
        }

        .module[data-module="text"] .module-text:not(:empty),
        .module[data-module="text"] p:not(:empty) {
            padding: .8rem .9rem;
            font-size: 1rem;
            line-height: 1.55;
            color: rgba(30,42,31,.85);
            border-radius: var(--r14);
            background-color: var(--g-box);
            border: 1px solid var(--g-border-soft);
        }

        .module[data-module="text"] .module-text a,
        .module[data-module="text"] p a {
            color: #1d7f5b;
            text-decoration: none;
        }

@media (hover:hover) {
    .module[data-module="text"] .module-text a,
    .module[data-module="text"] p a {
        background-image: linear-gradient(90deg,rgba(47,191,138,.25),rgba(255,209,102,.25));
        background-size: 0% 100%;
        background-repeat: no-repeat;
        transition: .3s ease;
    }

        .module[data-module="text"] .module-text a:hover,
        .module[data-module="text"] p a:hover {
            color: #1d7f5b;
            background-size: 100% 140%;
        }
}

.module[data-module="text"] .lead:empty,
.module[data-module="text"] .module-text:empty,
.module[data-module="text"] p:empty {
    display: none;
}

/* pulsante nel text (margini invariati) */
.module[data-module="text"] .mt-3.d-flex {
    margin-top: .75rem !important;
    margin-bottom: .35rem !important;
}

.module[data-module="text"] .price-box + .mt-3.d-flex,
.module[data-module="text"] .text-end + .mt-3.d-flex,
.module[data-module="text"] .text-muted + .mt-3.d-flex {
    margin-top: .55rem !important;
}

/* ---------------- RICHTEXT ---------------- */
.module[data-module="richtext"] .rm-preview,
.module[data-module="richtext"] .rm-full {
    padding: .2rem .28rem;
    position: relative;
}

    .module[data-module="richtext"] .rm-preview a,
    .module[data-module="richtext"] .rm-full a {
        color: #1d7f5b;
        text-decoration: none;
    }

@media (hover:hover) {
    .module[data-module="richtext"] .rm-preview a,
    .module[data-module="richtext"] .rm-full a {
        background-image: linear-gradient(90deg,rgba(47,191,138,.25),rgba(255,209,102,.25));
        background-size: 0% 100%;
        background-repeat: no-repeat;
        transition: .3s ease;
    }

        .module[data-module="richtext"] .rm-preview a:hover,
        .module[data-module="richtext"] .rm-full a:hover {
            background-size: 100% 100%;
        }
}

.module[data-module="richtext"] .readmore-toggle-rich {
    display: inline-block;
    margin: .18rem .28rem 0 .28rem;
    padding: .25rem .55rem;
    border-radius: 999px;
    font-size: .85rem;
    border: 1px solid rgba(215,234,210,.9);
    background: var(--g-accent);
    color: var(--g-ink);
}

@media (hover:hover) {
    .module[data-module="richtext"] .readmore-toggle-rich {
        transition: .2s ease;
    }

        .module[data-module="richtext"] .readmore-toggle-rich:hover {
            transform: translateY(-1px);
            box-shadow: 0 3px 8px rgba(16,32,16,.10);
        }
}

.module[data-module="richtext"] .text-muted {
    padding: 0 .28rem .28rem .28rem;
    font-size: .78rem;
    opacity: .6;
}

.module[data-module="richtext"] .rm-preview,
.module[data-module="richtext"] .rm-full {
    font-size: 1.05rem;
    line-height: 1.65;
}

    .module[data-module="richtext"] .rm-preview p,
    .module[data-module="richtext"] .rm-full p,
    .module[data-module="richtext"] .rm-preview li,
    .module[data-module="richtext"] .rm-full li {
        font-size: 1.05rem;
        line-height: 1.65;
    }

    .module[data-module="richtext"] .rm-preview h1,
    .module[data-module="richtext"] .rm-full h1 {
        font-size: 1.55rem;
    }

    .module[data-module="richtext"] .rm-preview h2,
    .module[data-module="richtext"] .rm-full h2 {
        font-size: 1.35rem;
    }

    .module[data-module="richtext"] .rm-preview h3,
    .module[data-module="richtext"] .rm-full h3 {
        font-size: 1.18rem;
    }

/* ---------------- IMAGE ---------------- */
.module[data-module="image"] {
    padding-top: 4px !important;
    padding-bottom: 6px !important;
    padding-left: .5rem !important;
    padding-right: .5rem !important;
}

    .module[data-module="image"] .mt-2 {
        margin-top: .6rem !important;
        padding: .2rem .2rem .3rem .2rem;
    }

    /* titolo iniziale se presente prima della figure */
    .module[data-module="image"] > div:first-child:not(:empty) {
        margin-top: .4rem;
        margin-bottom: .5rem;
        padding: .45rem .7rem;
        border-radius: var(--r14);
        border: 1px solid var(--g-border-soft);
        background: var(--g-accent);
        font-size: 1.05rem;
        line-height: 1.3;
        color: var(--g-ink);
    }

    .module[data-module="image"] > div:first-child:empty {
        display: none;
    }

    .module[data-module="image"] figure {
        margin-top: 4px;
        border-radius: var(--r14);
        overflow: hidden;
        border: 1px solid var(--g-border-soft);
        background-color: var(--g-box);
    }

        .module[data-module="image"] figure img {
            display: block;
            width: 100%;
            height: auto;
        }

        /* titolo mostrato dopo la figure */
        .module[data-module="image"] figure + h3,
        .module[data-module="image"] figure + .module-title,
        .module[data-module="image"] figure + div {
            margin-top: .5rem;
            margin-bottom: .5rem;
            padding: .45rem .7rem;
            border-radius: var(--r14);
            border: 1px solid var(--g-border-soft);
            background: var(--g-accent);
            font-size: 1.05rem !important;
            line-height: 1.3;
            color: var(--g-ink);
        }

@media (hover:hover) {
    .module[data-module="image"] figure img {
        transition: transform .35s ease, filter .35s ease;
    }

    .module[data-module="image"] figure:hover img {
        transform: scale(1.03);
        filter: saturate(1.05);
    }
}

.module[data-module="image"] .mt-2 {
    margin-top: .9rem !important;
    font-size: .95rem;
    line-height: 1.6;
}

.module[data-module="image"] hr {
    border: none;
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg,transparent,rgba(47,191,138,.55),rgba(255,111,166,.55),rgba(255,209,102,.55),transparent);
}

.module[data-module="image"] .price-box {
    padding: .6rem .9rem;
    border-radius: var(--r14);
    border: 1px solid var(--g-border-soft);
    background-color: var(--g-box);
    display: inline-block;
    margin-top: 7px !important;
}

.module[data-module="image"] .mt-2 + .price-box,
.module[data-module="image"] .mt-2 + hr + .price-box,
.module[data-module="image"] figure + .price-box,
.module[data-module="image"] figure + hr + .price-box {
    margin-top: .65rem;
}

.module[data-module="image"] .price-main {
    font-size: 1.25rem;
    letter-spacing: .5px;
}

.module[data-module="image"] .price-old {
    opacity: .5;
    margin-left: .5rem;
    font-size: .9rem;
    text-decoration: line-through;
}

.module[data-module="image"] .price-sub {
    font-size: .8rem;
    opacity: .7;
    color: #262626;
}

/* pulsante nel image (margini invariati) */
.module[data-module="image"] .mt-3.d-flex {
    margin-top: .75rem !important;
    margin-bottom: .65rem !important;
}

.module[data-module="image"] .price-box + .mt-3.d-flex,
.module[data-module="image"] .text-end + .mt-3.d-flex,
.module[data-module="image"] .text-muted + .mt-3.d-flex {
    margin-top: .55rem !important;
}

/* SOLO IMMAGINE: niente cornice (più leggero) */
.module[data-module="image"]:has(> figure:only-child) {
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: visible !important;
    border-radius: 0 !important;
}

    .module[data-module="image"]:has(> figure:only-child) > figure {
        border: 0 !important;
        background: transparent !important;
        border-radius: var(--r18) !important;
        overflow: hidden !important;
    }

        .module[data-module="image"]:has(> figure:only-child) > figure img {
            border-radius: inherit !important;
            transform: none !important;
            filter: none !important;
        }

.module[data-module="image"]
:is(> div, > section, > article)
:has(> figure:only-child):not(:has(.price-box, hr, .mt-2, .module-text, p, h1, h2, h3, h4, h5, h6)) {
    padding: 0 !important;
}

/* ---------------- YOUTUBE ---------------- */
.module[data-module="youtube-text"] {
    padding-left: .6rem;
    padding-right: .6rem;
}

    .module[data-module="youtube-text"] h3 {
        margin-top: .4rem;
        margin-bottom: .5rem;
        padding: .45rem .7rem;
        border-radius: var(--r14);
        border: 1px solid var(--g-border-soft);
        background: var(--g-accent);
        font-size: 1.05rem;
    }

    .module[data-module="youtube-text"] .ratio {
        border-radius: var(--r14) !important;
        border: 1px solid var(--g-border-soft);
        background-color: var(--g-box);
        box-shadow: var(--g-shadow-soft);
        overflow: hidden;
    }

        .module[data-module="youtube-text"] .ratio iframe {
            width: 100%;
            height: 100%;
            display: block;
            border: 0;
            border-radius: inherit;
        }

    .module[data-module="youtube-text"] .module-text:not(:empty) {
        padding: .55rem .7rem;
        border-radius: var(--r14);
        background-color: var(--g-box);
        border: 1px solid var(--g-border-soft);
        line-height: 1.6;
    }

    /* pulsante nel youtube (margini invariati) */
    .module[data-module="youtube-text"] .mt-3.d-flex {
        margin-top: .75rem !important;
        margin-bottom: .65rem !important;
    }

    .module[data-module="youtube-text"] .module-text + .mt-3.d-flex,
    .module[data-module="youtube-text"] .text-end + .mt-3.d-flex,
    .module[data-module="youtube-text"] .text-muted + .mt-3.d-flex {
        margin-top: .55rem !important;
    }

    /* SOLO VIDEO YT: niente cornice */
    .module[data-module="youtube-text"]:has(> .ratio.only-video:only-child) {
        padding: 0 !important;
        border: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        overflow: visible !important;
        border-radius: 0 !important;
        margin: 0 !important;
    }

        .module[data-module="youtube-text"]:has(> .ratio.only-video:only-child) > .ratio.only-video {
            border: 0 !important;
            background: transparent !important;
            box-shadow: none !important;
            border-radius: 12px !important;
            overflow: hidden !important;
        }

            .module[data-module="youtube-text"]:has(> .ratio.only-video:only-child) > .ratio.only-video iframe {
                border-radius: inherit !important;
                display: block !important;
                border: 0 !important;
            }

/* ---------------- VIDEO FILE ---------------- */
.module[data-module="video-file"] {
    padding-left: .6rem;
    padding-right: .6rem;
    --vf-aspect: 16/9;
}

    .module[data-module="video-file"] h3 {
        margin-top: .4rem;
        margin-bottom: .5rem;
        padding: .45rem .7rem;
        border-radius: var(--r14);
        border: 1px solid var(--g-border-soft);
        background: var(--g-accent);
        font-size: 1.05rem;
    }

    .module[data-module="video-file"] .video-wrap {
        border-radius: 0 !important;
        border: 1px solid var(--g-border-soft);
        background-color: var(--g-box);
        box-shadow: var(--g-shadow-soft);
        overflow: hidden;
        aspect-ratio: var(--vf-aspect);
    }

        .module[data-module="video-file"] .video-wrap.ratio-9x16 {
            aspect-ratio: 9/16;
        }

        .module[data-module="video-file"] .video-wrap.ratio-16x9 {
            aspect-ratio: 16/9;
        }

        .module[data-module="video-file"] .video-wrap.ratio-1x1 {
            aspect-ratio: 1/1;
        }

        .module[data-module="video-file"] .video-wrap video {
            display: block;
            border: 0;
            width: 100%;
            height: 100%;
            margin-top: .25rem;
            border-radius: 10px !important;
            object-fit: cover;
            background: transparent;
        }

    .module[data-module="video-file"] .module-text {
        margin-top: .5rem;
        padding: .55rem .7rem;
        border-radius: var(--r14);
        background-color: var(--g-box);
        border: 1px solid var(--g-border-soft);
        line-height: 1.6;
    }

    .module[data-module="video-file"] hr {
        border: none;
        height: 2px;
        border-radius: 999px;
        background: linear-gradient(90deg,transparent,rgba(47,191,138,.55),rgba(255,111,166,.55),rgba(255,209,102,.55),transparent);
    }

    /* prezzo senza box (come tuo) */
    .module[data-module="video-file"] .price-box {
        margin-top: .5rem;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
        display: inline-block;
        line-height: 1.2;
        color: inherit;
    }

    .module[data-module="video-file"] .price-main {
        font-size: 1.2rem;
        letter-spacing: .5px;
    }

    .module[data-module="video-file"] .price-old {
        opacity: .5;
        margin-left: .5rem;
        font-size: .9rem;
        text-decoration: line-through;
    }

    .module[data-module="video-file"] .price-sub {
        display: block;
        margin-top: .15rem;
        font-size: .8rem;
        opacity: .7;
        color: #262626;
    }

    /* pulsante nel video-file (margini invariati) */
    .module[data-module="video-file"] .mt-3.d-flex {
        margin-top: .75rem !important;
        margin-bottom: .65rem !important;
    }

    .module[data-module="video-file"] .price-box + .mt-3.d-flex,
    .module[data-module="video-file"] .text-end + .mt-3.d-flex,
    .module[data-module="video-file"] .text-muted + .mt-3.d-flex {
        margin-top: .55rem !important;
    }

    /* SOLO VIDEO FILE: niente cornice */
    .module[data-module="video-file"]:has(> .video-wrap.only-video:only-child) {
        padding: 0 !important;
        margin: 0 !important;
        border: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        overflow: visible !important;
        border-radius: 0 !important;
    }

        .module[data-module="video-file"]:has(> .video-wrap.only-video:only-child) > .video-wrap {
            border: 0 !important;
            background: transparent !important;
            box-shadow: none !important;
            border-radius: 12px !important;
            overflow: hidden !important;
        }

            .module[data-module="video-file"]:has(> .video-wrap.only-video:only-child) > .video-wrap video {
                border-radius: inherit !important;
                display: block !important;
            }

    /* titolo sotto i video: stesso stile del titolo sopra */
    .module[data-module="youtube-text"] .ratio + h3,
    .module[data-module="youtube-text"] .ratio + .module-title,
    .module[data-module="youtube-text"] .ratio + div,
    .module[data-module="video-file"] .video-wrap + h3,
    .module[data-module="video-file"] .video-wrap + .module-title,
    .module[data-module="video-file"] .video-wrap + div {
        margin-top: .5rem;
        margin-bottom: .5rem;
        padding: .45rem .7rem;
        border-radius: var(--r14);
        border: 1px solid var(--g-border-soft);
        background: var(--g-accent);
        font-size: 1.05rem !important;
        line-height: 1.3;
        color: var(--g-ink);
    }

/* ---------------- IMMAGINI (grid) ---------------- */
.module[data-module="immagini"] {
    padding-left: .6rem;
    padding-right: .6rem;
}

    .module[data-module="immagini"] .module-title {
        margin: .4rem 0 .6rem 0;
        padding: .45rem .7rem;
        padding-top: 1rem;
        border-radius: var(--r14);
        border: 1px solid var(--g-border-soft);
        background: var(--g-accent);
    }

    .module[data-module="immagini"] .row {
        --bs-gutter-x: .45rem;
        --bs-gutter-y: .45rem;
    }

    .module[data-module="immagini"] .col img {
        border-radius: var(--r14);
        border: 1px solid var(--g-border-soft);
        background-color: var(--g-box);
        display: block;
        width: 100%;
        height: auto;
    }

@media (hover:hover) {
    .module[data-module="immagini"] .col img {
        transition: transform .35s ease,filter .35s ease;
    }

    .module[data-module="immagini"] .col:hover img {
        transform: scale(1.04);
        filter: saturate(1.05);
    }
}

.module[data-module="immagini"] p {
    margin-top: .6rem;
    padding: .5rem .7rem;
    border-radius: var(--r14);
    background-color: var(--g-box);
    border: 1px solid var(--g-border-soft);
    line-height: 1.6;
}

.module[data-module="immagini"] .price-separator {
    border: none;
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg,transparent,rgba(47,191,138,.55),rgba(255,111,166,.55),rgba(255,209,102,.55),transparent);
}

.module[data-module="immagini"] .price-box {
    padding: .5rem .8rem;
    border-radius: var(--r14);
    border: 1px solid var(--g-border-soft);
    background-color: var(--g-box);
    display: inline-block;
}

.module[data-module="immagini"] .price-main {
    font-size: 1.2rem;
    letter-spacing: .5px;
}

.module[data-module="immagini"] .price-old {
    opacity: .5;
    margin-left: .5rem;
    font-size: .9rem;
    text-decoration: line-through;
}

.module[data-module="immagini"] .price-sub {
    font-size: .8rem;
    opacity: .7;
    color: #262626;
}

/* ---------------- GALLERY ---------------- */
.module[data-module="gallery"] {
    padding-left: .6rem;
    padding-right: .6rem;
}

    .module[data-module="gallery"] .module-title {
        margin: .4rem 0 .6rem 0;
        padding: .45rem .7rem;
        border-radius: var(--r14);
        border: 1px solid var(--g-border-soft);
        background: var(--g-accent);
    }

    .module[data-module="gallery"] .carousel {
        border-radius: var(--r14);
        border: 1px solid var(--g-border-soft);
        background-color: var(--g-box);
        box-shadow: var(--g-shadow-soft);
        overflow: hidden;
    }

    .module[data-module="gallery"] .carousel-inner {
        border-radius: var(--r14);
    }

    .module[data-module="gallery"] .carousel-item img {
        width: 100%;
        display: block;
    }

    .module[data-module="gallery"] .carousel-control-prev,
    .module[data-module="gallery"] .carousel-control-next {
        opacity: .85;
    }

@media (hover:hover) {
    .module[data-module="gallery"] .carousel-control-prev,
    .module[data-module="gallery"] .carousel-control-next {
        transition: opacity .2s ease;
    }

        .module[data-module="gallery"] .carousel-control-prev:hover,
        .module[data-module="gallery"] .carousel-control-next:hover {
            opacity: 1;
        }
}

.module[data-module="gallery"] .carousel-indicators [data-bs-target] {
    width: 10px;
    height: 10px;
    border-radius: 999px;
    border: 1px solid rgba(215,234,210,.9);
    opacity: .55;
}

.module[data-module="gallery"] .carousel-indicators .active {
    opacity: 1;
}

.module[data-module="gallery"] .module-text {
    margin-top: .6rem !important;
    padding: .55rem .7rem;
    border-radius: var(--r14);
    background-color: var(--g-box);
    border: 1px solid var(--g-border-soft);
    line-height: 1.6;
    color: rgba(30,42,31,.85);
}

.module[data-module="gallery"] .price-separator {
    border: none;
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg,transparent,rgba(47,191,138,.55),rgba(255,111,166,.55),rgba(255,209,102,.55),transparent);
}

.module[data-module="gallery"] .price-box {
    padding: .5rem .8rem;
    border-radius: var(--r14);
    border: 1px solid var(--g-border-soft);
    background-color: var(--g-box);
    display: inline-block;
    margin-top: 7px !important;
}

.module[data-module="gallery"] .price-main {
    font-size: 1.2rem;
    letter-spacing: .5px;
}

.module[data-module="gallery"] .price-old {
    opacity: .5;
    margin-left: .5rem;
    font-size: .9rem;
    text-decoration: line-through;
}

.module[data-module="gallery"] .price-sub {
    font-size: .8rem;
    opacity: .7;
    color: #262626;
}

/* pulsante nel gallery (margini invariati) */
.module[data-module="gallery"] .mt-3.d-flex {
    margin-top: .75rem !important;
    margin-bottom: .65rem !important;
}

.module[data-module="gallery"] .price-box + .mt-3.d-flex,
.module[data-module="gallery"] .text-end + .mt-3.d-flex,
.module[data-module="gallery"] .text-muted + .mt-3.d-flex {
    margin-top: .55rem !important;
}

/* ---------------- ELENCO PRODOTTI ---------------- */
.module[data-module="elencoprodotti_001"] {
    padding-left: .6rem;
    padding-right: .6rem;
}

    .module[data-module="elencoprodotti_001"] .module-text {
        padding: .55rem .7rem;
        border-radius: var(--r14);
        background-color: var(--g-box);
        border: 1px solid var(--g-border-soft);
    }

    .module[data-module="elencoprodotti_001"] .item-row {
        border-radius: 12px;
        padding-left: .4rem;
        padding-right: .4rem;
    }

    .module[data-module="elencoprodotti_001"] hr {
        border: none;
        height: 2px;
        margin-top: .45rem !important;
        margin-bottom: .45rem !important;
        border-radius: 999px;
        background: linear-gradient(90deg,transparent,rgba(47,191,138,.45),rgba(255,111,166,.45),rgba(255,209,102,.45),transparent);
    }

    .module[data-module="elencoprodotti_001"] .price-box {
        padding: .5rem .75rem;
        border-radius: var(--r14);
        border: 1px solid var(--g-border-soft);
        background-color: var(--g-box2);
        box-shadow: 0 6px 14px rgba(16,32,16,.10);
        display: inline-block;
    }

    .module[data-module="elencoprodotti_001"] .price-main {
        font-size: 1.15rem;
        letter-spacing: .4px;
        color: var(--g-ink);
    }

    .module[data-module="elencoprodotti_001"] .price-old {
        opacity: .55;
        margin-left: .45rem;
        font-size: .9rem;
        text-decoration: line-through;
    }

    .module[data-module="elencoprodotti_001"] .price-sub {
        font-size: .8rem;
        opacity: .7;
        color: #262626;
    }

    .module[data-module="elencoprodotti_001"] .price-apartireda-label {
        font-size: .78rem;
        opacity: .7;
        margin-bottom: 2px;
    }

    .module[data-module="elencoprodotti_001"] .price-apartireda-value {
        font-size: 1.15rem;
    }

    .module[data-module="elencoprodotti_001"] .price-text .price-main {
        font-size: 1.05rem;
        opacity: .85;
    }

    .module[data-module="elencoprodotti_001"] .price-box:has(.price-old) .price-main {
        color: #e0002a;
    }

    .module[data-module="elencoprodotti_001"] .mt-3.d-flex {
        margin-top: .75rem !important;
        margin-bottom: .65rem !important;
    }

    .module[data-module="elencoprodotti_001"] .price-box + .mt-3.d-flex,
    .module[data-module="elencoprodotti_001"] .module-text + .mt-3.d-flex,
    .module[data-module="elencoprodotti_001"] .text-end + .mt-3.d-flex,
    .module[data-module="elencoprodotti_001"] .text-muted + .mt-3.d-flex {
        margin-top: .55rem !important;
    }

    .module[data-module="elencoprodotti_001"] .mt-3.d-flex .btn {
        white-space: nowrap;
    }

/* ---------------- MAP ---------------- */
/* ---------------- MAP ---------------- */
.module[data-module="map"] {
    border: 1px solid var(--g-border);
    background: var(--g-bg);
    color: var(--g-ink);
    border-radius: var(--r18);
    box-shadow: var(--g-shadow);
    overflow: hidden;
    padding: .55rem;
}

    .module[data-module="map"] .module-title {
        margin: 0 0 .45rem 0;
        padding: .45rem .7rem;
        border-radius: var(--r14);
        border: 1px solid var(--g-border-soft);
        background: var(--g-accent);
        color: var(--g-ink);
        font-size: 1rem;
        line-height: 1.3;
    }

    .module[data-module="map"] .ratio {
        border-radius: var(--r14) !important;
        overflow: hidden;
        border: 1px solid var(--g-border-soft);
        background: var(--g-box);
        box-shadow: var(--g-shadow-soft);
        margin-top: 0 !important;
    }

    .module[data-module="map"] iframe {
        display: block;
        width: 100%;
        height: 100%;
        border: 0;
    }

    .module[data-module="map"] p {
        margin: .45rem 0 0 0 !important;
        padding: .55rem .7rem;
        border-radius: var(--r14);
        border: 1px solid var(--g-border-soft);
        background: var(--g-box);
        color: rgba(30,42,31,.85);
        line-height: 1.5;
        font-size: .95rem;
    }

        .module[data-module="map"] .module-title:empty,
        .module[data-module="map"] p:empty {
            display: none;
        }

/* ---------------- BUTTON ---------------- */
.module[data-module="button"] {
    padding: .45rem;
    box-shadow: 0 10px 24px rgba(16,32,16,.12);
}

    .module[data-module="button"] .button-click-area {
        border-radius: var(--r14);
        padding: .7rem .9rem;
    }

    .module[data-module="button"] .button-title {
        font-size: 1.05rem;
        letter-spacing: .2px;
        color: inherit;
    }

@media (hover:hover) {
    .module[data-module="button"] .button-click-area {
        transition: transform .2s ease,box-shadow .2s ease;
    }

    .module[data-module="button"] i {
        transition: transform .25s ease;
    }

    .module[data-module="button"] .button-click-area:hover {
        transform: translateY(-2px);
        box-shadow: 0 8px 18px rgba(16,32,16,.18);
    }

        .module[data-module="button"] .button-click-area:hover i {
            transform: translateX(4px);
        }
}

/* ---------------- CTA COUPON ---------------- */
.module[data-module="cta-coupon"] {
    padding: .35rem .6rem;
    font-size: .95rem;
    box-shadow: 0 8px 20px rgba(16,32,16,.12);
}

    .module[data-module="cta-coupon"] .row {
        margin: 0;
        --bs-gutter-x: 0;
        --bs-gutter-y: 0;
    }

    .module[data-module="cta-coupon"] .lead {
        font-size: .9rem;
        margin: 0;
        line-height: 1.2;
    }

    .module[data-module="cta-coupon"] button,
    .module[data-module="cta-coupon"] .btn,
    .module[data-module="cta-coupon"] a {
        font-size: .85rem;
    }

/* ---------------- CTA VISIT SITE ---------------- */
.module[data-module="cta-visit-site"] {
    padding: .55rem;
    font-size: .85rem;
    box-shadow: 0 8px 20px rgba(16,32,16,.12);
}

    .module[data-module="cta-visit-site"] .lead {
        font-size: .95rem;
        margin-bottom: 0;
    }

    .module[data-module="cta-visit-site"] .row {
        margin: 0;
        --bs-gutter-x: 0;
        --bs-gutter-y: 0;
    }

        .module[data-module="cta-visit-site"] .row > * {
            padding-left: 0;
            padding-right: 0;
        }

/* ---------------- PDF DOWNLOAD ---------------- */
.module[data-module="pdf-download"] {
    padding: .25rem .35rem;
    box-shadow: 0 8px 20px rgba(16,32,16,.12);
}

    .module[data-module="pdf-download"] .download-card {
        border-radius: 12px;
        border: 1px solid var(--g-border-soft);
        background: rgba(243,255,239,.65);
        padding: .35rem .45rem;
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: .35rem;
    }

    .module[data-module="pdf-download"] .btn {
        border-radius: 999px;
        padding: .65rem 1.05rem;
        font-size: 1rem;
        line-height: 1.1;
        border: 1px solid var(--g-border);
        background: linear-gradient(90deg,rgba(47,191,138,.85),rgba(255,111,166,.70),rgba(255,209,102,.85));
        color: var(--g-ink);
        box-shadow: 0 10px 22px rgba(16,32,16,.14);
        text-decoration: none;
        white-space: nowrap;
    }

@media (hover:hover) {
    .module[data-module="pdf-download"] .btn {
        transition: transform .2s ease,box-shadow .2s ease,filter .2s ease;
    }

        .module[data-module="pdf-download"] .btn:hover {
            transform: translateY(-2px);
            box-shadow: 0 14px 30px rgba(16,32,16,.18);
            filter: saturate(1.05);
        }

        .module[data-module="pdf-download"] .btn:active {
            transform: translateY(0);
            box-shadow: 0 8px 18px rgba(16,32,16,.12);
        }
}

.module[data-module="pdf-download"] .btn:focus,
.module[data-module="pdf-download"] .btn:focus-visible {
    outline: none;
    box-shadow: 0 0 0 .2rem rgba(47,191,138,.22), 0 10px 22px rgba(16,32,16,.14);
}

/* ---------------- BOTTONI (unificati, hover solo desktop) ---------------- */
.module[data-module="text"] .mt-3.d-flex .btn,
.module[data-module="text"] .mt-3.d-flex .btn-primary,
.module[data-module="image"] .mt-3.d-flex .btn,
.module[data-module="youtube-text"] .mt-3.d-flex .btn,
.module[data-module="youtube-text"] .mt-3.d-flex .btn-primary,
.module[data-module="video-file"] .mt-3.d-flex .btn,
.module[data-module="video-file"] .mt-3.d-flex .btn-primary,
.module[data-module="gallery"] .mt-3.d-flex .btn,
.module[data-module="gallery"] .mt-3.d-flex .btn-primary,
.module[data-module="immagini"] .mt-3.d-flex .btn,
.module[data-module="immagini"] .mt-3.d-flex .btn-primary,
.module[data-module="elencoprodotti_001"] .mt-3.d-flex .btn,
.module[data-module="elencoprodotti_001"] .mt-3.d-flex .btn-primary {
    border-radius: 8px;
    padding: .65rem 1.05rem;
    font-size: 1rem;
    line-height: 1.1;
    border: 1px solid rgba(255,255,255,.42);
    background: linear-gradient(90deg, rgba(47,191,138,.26), rgba(255,111,166,.18), rgba(255,209,102,.26));
    color: var(--g-ink);
    box-shadow: 0 4px 10px rgba(16,32,16,.10);
    text-decoration: none;
}

@media (hover:hover) {
    .module[data-module="text"] .mt-3.d-flex .btn,
    .module[data-module="text"] .mt-3.d-flex .btn-primary,
    .module[data-module="image"] .mt-3.d-flex .btn,
    .module[data-module="youtube-text"] .mt-3.d-flex .btn,
    .module[data-module="youtube-text"] .mt-3.d-flex .btn-primary,
    .module[data-module="video-file"] .mt-3.d-flex .btn,
    .module[data-module="video-file"] .mt-3.d-flex .btn-primary,
    .module[data-module="gallery"] .mt-3.d-flex .btn,
    .module[data-module="gallery"] .mt-3.d-flex .btn-primary,
    .module[data-module="elencoprodotti_001"] .mt-3.d-flex .btn,
    .module[data-module="elencoprodotti_001"] .mt-3.d-flex .btn-primary {
        transition: transform .2s ease,box-shadow .2s ease,filter .2s ease;
    }

        .module[data-module="text"] .mt-3.d-flex .btn:hover,
        .module[data-module="text"] .mt-3.d-flex .btn-primary:hover,
        .module[data-module="image"] .mt-3.d-flex .btn:hover,
        .module[data-module="youtube-text"] .mt-3.d-flex .btn:hover,
        .module[data-module="youtube-text"] .mt-3.d-flex .btn-primary:hover,
        .module[data-module="video-file"] .mt-3.d-flex .btn:hover,
        .module[data-module="video-file"] .mt-3.d-flex .btn-primary:hover,
        .module[data-module="gallery"] .mt-3.d-flex .btn:hover,
        .module[data-module="gallery"] .mt-3.d-flex .btn-primary:hover,
        .module[data-module="elencoprodotti_001"] .mt-3.d-flex .btn:hover,
        .module[data-module="elencoprodotti_001"] .mt-3.d-flex .btn-primary:hover {
            transform: translateY(-2px);
            box-shadow: 0 14px 30px rgba(16,32,16,.18);
            filter: saturate(1.05);
        }

        .module[data-module="text"] .mt-3.d-flex .btn:active,
        .module[data-module="text"] .mt-3.d-flex .btn-primary:active,
        .module[data-module="image"] .mt-3.d-flex .btn:active,
        .module[data-module="youtube-text"] .mt-3.d-flex .btn:active,
        .module[data-module="youtube-text"] .mt-3.d-flex .btn-primary:active,
        .module[data-module="video-file"] .mt-3.d-flex .btn:active,
        .module[data-module="video-file"] .mt-3.d-flex .btn-primary:active,
        .module[data-module="gallery"] .mt-3.d-flex .btn:active,
        .module[data-module="gallery"] .mt-3.d-flex .btn-primary:active,
        .module[data-module="elencoprodotti_001"] .mt-3.d-flex .btn:active,
        .module[data-module="elencoprodotti_001"] .mt-3.d-flex .btn-primary:active {
            transform: translateY(0);
            box-shadow: 0 8px 18px rgba(16,32,16,.12);
        }
}

.module[data-module="text"] .mt-3.d-flex .btn:focus,
.module[data-module="text"] .mt-3.d-flex .btn:focus-visible,
.module[data-module="text"] .mt-3.d-flex .btn-primary:focus,
.module[data-module="text"] .mt-3.d-flex .btn-primary:focus-visible,
.module[data-module="image"] .mt-3.d-flex .btn:focus,
.module[data-module="image"] .mt-3.d-flex .btn:focus-visible,
.module[data-module="youtube-text"] .mt-3.d-flex .btn:focus,
.module[data-module="youtube-text"] .mt-3.d-flex .btn:focus-visible,
.module[data-module="youtube-text"] .mt-3.d-flex .btn-primary:focus,
.module[data-module="youtube-text"] .mt-3.d-flex .btn-primary:focus-visible,
.module[data-module="video-file"] .mt-3.d-flex .btn:focus,
.module[data-module="video-file"] .mt-3.d-flex .btn:focus-visible,
.module[data-module="video-file"] .mt-3.d-flex .btn-primary:focus,
.module[data-module="video-file"] .mt-3.d-flex .btn-primary:focus-visible,
.module[data-module="gallery"] .mt-3.d-flex .btn:focus,
.module[data-module="gallery"] .mt-3.d-flex .btn:focus-visible,
.module[data-module="gallery"] .mt-3.d-flex .btn-primary:focus,
.module[data-module="gallery"] .mt-3.d-flex .btn-primary:focus-visible,
.module[data-module="elencoprodotti_001"] .mt-3.d-flex .btn:focus,
.module[data-module="elencoprodotti_001"] .mt-3.d-flex .btn:focus-visible,
.module[data-module="elencoprodotti_001"] .mt-3.d-flex .btn-primary:focus,
.module[data-module="elencoprodotti_001"] .mt-3.d-flex .btn-primary:focus-visible {
    outline: none;
    box-shadow: 0 0 0 .2rem rgba(47,191,138,.22), 0 10px 22px rgba(16,32,16,.14);
}

/* ---------------- padding-top un po’ meno (come tuo, in fondo) ---------------- */
.module:not([data-module="video-file"]) .price-box {
    padding-top: .65rem !important;
}

.module[data-module="image"] .price-box {
    padding-top: .65rem !important;
}

.module[data-module="gallery"] .price-box {
    padding-top: .60rem !important;
}

.module[data-module="immagini"] .price-box {
    padding-top: .60rem !important;
}

.module[data-module="elencoprodotti_001"] .price-box {
    padding-top: .60rem !important;
}

/* ===========================
   QUESTIONARIO (nuovo modulo)
   =========================== */

/* Contenitore modulo: stesso “family look” degli altri */
.module[data-module="questionario"] {
    border: 1px solid var(--g-border);
    background: var(--g-bg);
    color: var(--g-ink);
    position: relative;
    overflow: hidden;
    border-radius: var(--r18);
    box-shadow: var(--g-shadow);
}

    /* Titolo (quello che generi inline nel renderer) */
    .module[data-module="questionario"] > div:first-child {
        margin-top: .2rem;
    }

    /* Preview box (quella con bg #f8f9fa nel JS) */
    .module[data-module="questionario"] .q-preview {
        border-radius: var(--r14) !important;
        border: 1px solid var(--g-border-soft);
        background: var(--g-box);
        box-shadow: var(--g-shadow-soft);
    }

    /* Full box (form) */
    .module[data-module="questionario"] .q-full {
        border-radius: var(--r14);
    }

    /* Badge domande nella preview */
    .module[data-module="questionario"] .badge {
        border: 1px solid var(--g-border-soft);
        background: var(--g-accent) !important;
        color: var(--g-ink) !important;
        font-weight: 500;
    }

    /* Form controls allineati al tema */
    .module[data-module="questionario"] .form-control,
    .module[data-module="questionario"] .form-select {
        border-radius: var(--r14);
        border: 1px solid var(--g-border-soft);
        background: rgba(255,255,255,.75);
        color: var(--g-ink);
        box-shadow: none;
    }

        .module[data-module="questionario"] .form-control:focus,
        .module[data-module="questionario"] .form-select:focus {
            outline: none;
            border-color: rgba(47,191,138,.45);
            box-shadow: 0 0 0 .2rem rgba(47,191,138,.18);
        }

    /* Label */
    .module[data-module="questionario"] .form-label {
        color: rgba(30,42,31,.90);
    }

    /* Alert info / errori coerenti */
    .module[data-module="questionario"] .alert {
        border-radius: var(--r14);
        border: 1px solid var(--g-border-soft);
        box-shadow: 0 6px 14px rgba(16,32,16,.08);
    }

    .module[data-module="questionario"] .alert-info {
        background: rgba(47,191,138,.10);
        color: rgba(30,42,31,.92);
    }

    .module[data-module="questionario"] .alert-danger {
        background: rgba(224,0,42,.08);
        color: rgba(30,42,31,.92);
    }

    /* Checkbox privacy */
    .module[data-module="questionario"] .form-check-input {
        border: 1px solid var(--g-border-soft);
    }

        .module[data-module="questionario"] .form-check-input:checked {
            background-color: rgba(47,191,138,.75);
            border-color: rgba(47,191,138,.75);
        }

    .module[data-module="questionario"] .form-check-input {
        transform: scale(1.2);
        margin-top: .25rem;
    }

    /* Rating stars un po’ più “carine” */
    .module[data-module="questionario"] .rating-5 .star {
        font-size: 1.15rem;
        line-height: 1;
        color: rgba(30,42,31,.55);
    }

    /* Evidenzia la stella scelta (senza JS) */
    .module[data-module="questionario"] .rating-item input[type="radio"] {
        accent-color: rgba(47,191,138,.85);
    }

        .module[data-module="questionario"] .rating-item input[type="radio"]:checked + .star {
            color: rgba(47,191,138,.95);
        }

    /* Bottoni: usa il tuo stile “unificato” anche per q-expand e submit */
    .module[data-module="questionario"] .btn,
    .module[data-module="questionario"] .btn-primary,
    .module[data-module="questionario"] .btn-outline-primary {
        border-radius: 999px;
        padding: .65rem 1.05rem;
        font-size: 1rem;
        line-height: 1.1;
        border: 1px solid var(--g-border);
        background: linear-gradient(90deg,rgba(47,191,138,.85),rgba(255,111,166,.70),rgba(255,209,102,.85));
        color: var(--g-ink);
        box-shadow: 0 10px 22px rgba(16,32,16,.14);
        text-decoration: none;
    }

/* Hover solo desktop (coerente col resto) */
@media (hover:hover) {
    .module[data-module="questionario"] .btn,
    .module[data-module="questionario"] .btn-primary,
    .module[data-module="questionario"] .btn-outline-primary {
        transition: transform .2s ease,box-shadow .2s ease,filter .2s ease;
    }

        .module[data-module="questionario"] .btn:hover,
        .module[data-module="questionario"] .btn-primary:hover,
        .module[data-module="questionario"] .btn-outline-primary:hover {
            transform: translateY(-2px);
            box-shadow: 0 14px 30px rgba(16,32,16,.18);
            filter: saturate(1.05);
        }

        .module[data-module="questionario"] .btn:active,
        .module[data-module="questionario"] .btn-primary:active,
        .module[data-module="questionario"] .btn-outline-primary:active {
            transform: translateY(0);
            box-shadow: 0 8px 18px rgba(16,32,16,.12);
        }
}

/* Focus coerente */
.module[data-module="questionario"] .btn:focus,
.module[data-module="questionario"] .btn:focus-visible {
    outline: none;
    box-shadow: 0 0 0 .2rem rgba(47,191,138,.22), 0 10px 22px rgba(16,32,16,.14);
}

.module[data-module="questionario"] .rating-5 .rating-item {
    padding: .15rem .25rem;
    border-radius: 10px;
    border: 1px solid var(--g-border-soft);
    background: rgba(255,255,255,.55);
    position: relative;
    cursor: pointer;
}

    /* nascondo il radio ma resta cliccabile tramite label */
    .module[data-module="questionario"] .rating-5 .rating-item input[type="radio"] {
        position: absolute;
        opacity: 0;
        pointer-events: none;
    }

/* stato base */
.module[data-module="questionario"] .rating-5 .rating-num {
    font-size: .95rem;
    line-height: 1;
    opacity: .75;
    margin-right: 2px;
}

.module[data-module="questionario"] .rating-5 .star {
    opacity: .55;
    transition: color .15s ease, opacity .15s ease, transform .15s ease;
}

/* quando selezionata: numero + stella più evidenti */
.module[data-module="questionario"]
.rating-5 .rating-item input[type="radio"]:checked ~ .rating-num {
    opacity: 1;
}

.module[data-module="questionario"]
.rating-5 .rating-item input[type="radio"]:checked ~ .star {
    color: rgba(47,191,138,.95);
    opacity: 1;
    transform: translateY(-1px);
}

hr,
.module hr {
    border: 0 !important;
    height: 2px !important;
    margin: .8rem 0 !important;
    border-radius: 999px !important;
    background: linear-gradient( 90deg, transparent, rgba(21,94,75,.65), transparent ) !important;
}

input[type="radio"],
input[type="checkbox"] {
    accent-color: rgba(21,94,75,.85) !important;
    transform: scale(1.2) !important;
}

.form-label {
    font-weight: 500 !important;
    color: rgba(31,42,36,.90);
}

/* ===========================
   coupon_002
   =========================== */

.module[data-module="coupon"][data-name="coupon_002"] {
    border: 1px solid var(--g-border);
    background: var(--g-bg);
    color: var(--g-ink);
    border-radius: 14px;
    box-shadow: 0 5px 12px rgba(16,32,16,.08);
    padding: .55rem !important;
    overflow: hidden;
}

    /* badge stato */
    .module[data-module="coupon"][data-name="coupon_002"] .badge {
        display: inline-block;
        margin-bottom: .2rem;
        padding: .3rem .65rem;
        border-radius: 999px;
        font-size: .78rem;
        line-height: 1.1;
        font-weight: 600;
        background: #2fbf8a !important;
        color: #fff !important;
        border: 1px solid #249e72;
    }

    /* titolo */
    .module[data-module="coupon"][data-name="coupon_002"] > div[style*="font-size:1.15rem"] {
        margin: 0 0 .45rem 0 !important;
        padding: .5rem .7rem;
        font-size: 1.1rem !important;
        line-height: 1.25 !important;
        font-weight: 600 !important;
        letter-spacing: .2px;
        color: var(--g-ink);
        background: var(--g-accent);
        border: 1px solid var(--g-border-soft);
        border-left: 4px solid #2fbf8a;
        border-radius: 12px;
        box-shadow: 0 3px 8px rgba(16,32,16,.06);
    }

    /* testo descrittivo */
    .module[data-module="coupon"][data-name="coupon_002"] > div.mb-3[style*="line-height:1.35"] {
        margin: 0 0 .45rem 0 !important;
        padding: .55rem .65rem;
        border: 1px solid var(--g-border-soft);
        border-radius: 12px;
        background: var(--g-box);
        font-size: .95rem;
        line-height: 1.45 !important;
    }

    /* box QR esterno */
    .module[data-module="coupon"][data-name="coupon_002"] > div.mb-3 > div.p-3.rounded {
        padding: .65rem !important;
        border: 1px solid var(--g-border-soft) !important;
        border-radius: 12px !important;
        background: var(--g-box) !important;
        box-shadow: none !important;
    }

    /* etichetta QR coupon */
    .module[data-module="coupon"][data-name="coupon_002"] .p-3.rounded > div[style*="font-size:.9rem"] {
        margin-bottom: .45rem !important;
        font-size: .9rem !important;
        color: var(--g-ink);
        font-weight: 500;
    }

    /* contenitore qr */
    .module[data-module="coupon"][data-name="coupon_002"] .coupon-user-qr {
        border: 1px solid var(--g-border-soft) !important;
        border-radius: 12px !important;
        background: #fff !important;
        padding: 8px !important;
    }

        /* qr image/canvas */
        .module[data-module="coupon"][data-name="coupon_002"] .coupon-user-qr img,
        .module[data-module="coupon"][data-name="coupon_002"] .coupon-user-qr canvas {
            display: block;
            width: 100% !important;
            height: auto !important;
            border-radius: 10px;
        }

/* ===========================
   raccoltapunti_001
   =========================== */

.module[data-module="raccoltapunti"][data-name="raccoltapunti_001"] {
    border: 1px solid var(--g-border);
    background: var(--g-bg);
    color: var(--g-ink);
    border-radius: 14px;
    box-shadow: 0 5px 12px rgba(16,32,16,.08);
    padding: .55rem !important;
    overflow: hidden;
}

    /* badge stato */
    .module[data-module="raccoltapunti"][data-name="raccoltapunti_001"] .badge {
        background: #2fbf8a !important;
        color: #fff !important;
        border: 1px solid #249e72;
        border-radius: 999px;
        font-size: .78rem;
        padding: .3rem .65rem;
    }

    /* titolo */
    .module[data-module="raccoltapunti"][data-name="raccoltapunti_001"] > div[style*="font-size:1.15rem"] {
        margin: 0 0 .45rem 0 !important;
        padding: .5rem .7rem;
        font-size: 1.08rem !important;
        line-height: 1.25 !important;
        background: var(--g-accent);
        border: 1px solid var(--g-border-soft);
        border-left: 4px solid #2fbf8a;
        border-radius: 12px;
    }

    /* spaziature */
    .module[data-module="raccoltapunti"][data-name="raccoltapunti_001"] > .mb-3,
    .module[data-module="raccoltapunti"][data-name="raccoltapunti_001"] > .mb-0,
    .module[data-module="raccoltapunti"][data-name="raccoltapunti_001"] .js-rp-state > .mb-3 {
        margin-bottom: .5rem !important;
    }

    /* box generici */
    .module[data-module="raccoltapunti"][data-name="raccoltapunti_001"] .p-3.rounded {
        background: var(--g-box) !important;
        border: 1px solid var(--g-border-soft) !important;
        border-radius: 12px !important;
        box-shadow: none !important;
    }

    /* QR */
    .module[data-module="raccoltapunti"][data-name="raccoltapunti_001"] .rp-user-qr {
        border: 1px solid var(--g-border-soft);
        border-radius: 12px;
        background: #fff;
        padding: 8px;
    }

        .module[data-module="raccoltapunti"][data-name="raccoltapunti_001"] .rp-user-qr img {
            display: block;
            width: 100% !important;
            height: auto !important;
            border-radius: 10px;
        }

    /* ===== STATO ===== */
    .module[data-module="raccoltapunti"][data-name="raccoltapunti_001"] .row .col-12.col-md-8 > div {
        background: #fff !important;
        border: 1px solid var(--g-border-soft);
        border-radius: 12px;
        padding: .8rem !important;
        font-size: .9rem;
        line-height: 1.4;
    }

    .module[data-module="raccoltapunti"][data-name="raccoltapunti_001"] .row .text-muted {
        font-size: .85rem;
        opacity: .7;
    }

    /* ===== BOX PUNTI (NUOVO COLORE) ===== */
    .module[data-module="raccoltapunti"][data-name="raccoltapunti_001"] .col-md-4 .p-3.rounded {
        background: linear-gradient(180deg, rgba(47,191,138,.12), rgba(47,191,138,.06)) !important;
        border: 1px solid rgba(47,191,138,.25) !important;
    }

    /* numero punti */
    .module[data-module="raccoltapunti"][data-name="raccoltapunti_001"] .rp-user-points {
        color: #1d7f5b;
        font-size: 2rem !important;
    }

/* mobile */
@media (max-width: 575.98px) {
    .module[data-module="raccoltapunti"][data-name="raccoltapunti_001"] {
        padding: .45rem !important;
    }

        .module[data-module="raccoltapunti"][data-name="raccoltapunti_001"] .p-3.rounded {
            padding: .75rem !important;
        }

        .module[data-module="raccoltapunti"][data-name="raccoltapunti_001"] .rp-user-points {
            font-size: 1.8rem !important;
        }

        .module[data-module="raccoltapunti"][data-name="raccoltapunti_001"] .row .col-12.col-md-8 > div {
            font-size: .85rem;
        }
}

/* ===========================
   offerta a tempo - leggero
   =========================== */

.module[data-module="offertatempo_001"] {
    border: 1px solid var(--g-border);
    background: var(--g-bg);
    color: var(--g-ink);
    border-radius: var(--r18);
    box-shadow: 0 6px 14px rgba(16,32,16,.10);
    overflow: hidden;
    padding: .65rem;
}

    /* titolo */
    .module[data-module="offertatempo_001"] > .fw-semibold {
        margin: 0 0 .55rem 0 !important;
        padding: .5rem .75rem;
        font-size: 1.05rem !important;
        line-height: 1.3;
        color: var(--g-ink);
        border: 1px solid var(--g-border-soft);
        border-radius: var(--r14);
        background: var(--g-accent);
    }

    /* immagine */
    .module[data-module="offertatempo_001"] .offer-image-wrap {
        border: 1px solid var(--g-border-soft);
        border-radius: var(--r14);
        overflow: hidden;
        background: var(--g-box);
    }

        .module[data-module="offertatempo_001"] .offer-image-wrap img {
            display: block;
            width: 100%;
            height: auto;
            border: 0 !important;
            border-radius: 0 !important;
            box-shadow: none !important;
        }

    /* testo */
    .module[data-module="offertatempo_001"] .module-text:not(:empty) {
        margin-top: .75rem !important;
        padding: .75rem .85rem;
        font-size: 1rem;
        line-height: 1.55;
        color: rgba(30,42,31,.85);
        border: 1px solid var(--g-border-soft);
        border-radius: var(--r14);
        background: var(--g-box);
    }

    /* prezzo */
    .module[data-module="offertatempo_001"] .d-flex.justify-content-end.mt-2 {
        margin-top: .7rem !important;
    }

    .module[data-module="offertatempo_001"] .price-box {
        padding: .6rem .85rem;
        border: 1px solid var(--g-border-soft);
        border-radius: var(--r14);
        background: var(--g-box);
        display: inline-block;
    }

    .module[data-module="offertatempo_001"] .price-main {
        font-size: 1.2rem;
        line-height: 1.15;
        color: var(--g-ink);
    }

    .module[data-module="offertatempo_001"] .price-box.price-discount .price-main {
        color: #e0002a;
    }

    .module[data-module="offertatempo_001"] .price-old {
        margin-left: .45rem;
        font-size: .9rem;
        opacity: .55;
        text-decoration: line-through;
    }

    .module[data-module="offertatempo_001"] .price-sub {
        margin-top: .15rem !important;
        font-size: .8rem;
        opacity: .72;
        color: #262626;
    }

    /* countdown */
    .module[data-module="offertatempo_001"] .offer-time-box {
        margin-top: .8rem !important;
        padding: .75rem .8rem;
        border: 1px solid var(--g-border-soft);
        border-radius: var(--r14);
        background: rgba(255,255,255,.45);
    }

    .module[data-module="offertatempo_001"] .offer-time-badge {
        display: inline-block;
        padding: .35rem .65rem;
        border: 1px solid var(--g-border-soft);
        border-radius: 999px;
        font-size: .8rem;
        font-weight: 600;
        line-height: 1.1;
        background: var(--g-accent);
        color: var(--g-ink);
    }

    .module[data-module="offertatempo_001"] .offer-time-label {
        margin-bottom: .45rem !important;
        font-size: .9rem;
        color: rgba(30,42,31,.82);
    }

    .module[data-module="offertatempo_001"] .offer-time-countdown {
        display: flex;
        flex-wrap: wrap;
        gap: .5rem !important;
    }

    .module[data-module="offertatempo_001"] .countdown-item {
        min-width: 74px;
        flex: 1 1 74px;
        padding: .55rem .45rem;
        border: 1px solid var(--g-border-soft);
        border-radius: 12px;
        background: var(--g-box);
        text-align: center;
    }

        .module[data-module="offertatempo_001"] .countdown-item span {
            display: block;
            font-size: 1.2rem;
            line-height: 1.05;
            font-weight: 700;
            color: #1d7f5b;
        }

        .module[data-module="offertatempo_001"] .countdown-item small {
            display: block;
            margin-top: .15rem;
            font-size: .76rem;
            line-height: 1.1;
            color: rgba(30,42,31,.72);
        }

    .module[data-module="offertatempo_001"] .offer-expired {
        padding: .7rem .8rem;
        border: 1px solid rgba(224,0,42,.15);
        border-radius: var(--r14);
        background: rgba(224,0,42,.08);
        font-size: .92rem;
        line-height: 1.4;
        color: rgba(30,42,31,.92);
    }

/* responsive */
@media (max-width: 575.98px) {
    .module[data-module="offertatempo_001"] {
        padding: .55rem;
    }

        .module[data-module="offertatempo_001"] > .fw-semibold {
            font-size: 1rem !important;
            padding: .45rem .65rem;
        }

        .module[data-module="offertatempo_001"] .module-text:not(:empty) {
            padding: .7rem .8rem;
            font-size: .95rem;
        }

        .module[data-module="offertatempo_001"] .price-main {
            font-size: 1.1rem;
        }

        .module[data-module="offertatempo_001"] .countdown-item {
            min-width: calc(50% - .25rem);
            flex: 1 1 calc(50% - .25rem);
        }

            .module[data-module="offertatempo_001"] .countdown-item span {
                font-size: 1.1rem;
            }
}

.module[data-module="text"] .module-text:not(:empty),
.module[data-module="text"] p:not(:empty),
.module[data-module="richtext"] .rm-preview,
.module[data-module="richtext"] .rm-full,
.module[data-module="richtext"] .rm-preview p,
.module[data-module="richtext"] .rm-full p,
.module[data-module="richtext"] .rm-preview li,
.module[data-module="richtext"] .rm-full li,
.module[data-module="image"] .mt-2,
.module[data-module="youtube-text"] .module-text:not(:empty),
.module[data-module="video-file"] .module-text,
.module[data-module="immagini"] p,
.module[data-module="gallery"] .module-text,
.module[data-module="elencoprodotti_001"] .module-text,
.module[data-module="map"] p,
.module[data-module="offertatempo_001"] .module-text:not(:empty) {
    font-size: 1.0rem !important;
    line-height: 1.45 !important;
}

.readmore-toggle {
    display: table;
    margin: .18rem .28rem 0 auto;
    padding: .38rem .72rem;
    border-radius: 999px;
    border: 1px solid var(--g-border-soft);
    background: rgba(243,255,239,.78);
    /* RIMUOVE STILE LINK */
    color: rgba(30,42,31,.82);
    text-decoration: none;
    font-size: .86rem;
    line-height: 1.1;
    box-shadow: 0 3px 8px rgba(16,32,16,.06);
}

    /* Neutralizza completamente stati link */
    .readmore-toggle:visited,
    .readmore-toggle:active,
    .readmore-toggle:focus {
        color: rgba(30,42,31,.82);
        text-decoration: none;
    }

@media (hover:hover) {
    .readmore-toggle {
        transition: background .2s ease, color .2s ease, box-shadow .2s ease, transform .2s ease;
    }

        .readmore-toggle:hover {
            background: rgba(243,255,239,.96);
            color: var(--g-ink); /* controllato, non da link */
            box-shadow: 0 5px 12px rgba(16,32,16,.09);
            transform: translateY(-1px);
            text-decoration: none;
        }

        .readmore-toggle:active {
            transform: translateY(0);
            box-shadow: 0 2px 6px rgba(16,32,16,.05);
        }
}

.readmore-toggle:focus-visible {
    outline: none;
    box-shadow: 0 0 0 .18rem rgba(47,191,138,.16), 0 3px 8px rgba(16,32,16,.06);
}

.module[data-module="image"] figure {
    margin-top: 4px;
}