:root {
    --g-ink: #1e2a1f;
    --g-border: rgba(215,234,210,.95);
    --g-border-soft: rgba(215,234,210,.85);
    --g-box: rgba(243,255,239,.72);
    --g-box2: rgba(255,255,255,.55);
    --g-shadow: 0 10px 26px rgba(16,32,16,.14);
    --g-shadow-soft: 0 8px 18px rgba(16,32,16,.12);
    /* più leggero delle 3 radial + blur */
    --g-bg: linear-gradient(180deg,rgba(255,255,255,.90),rgba(243,255,239,.82));
    --g-accent: linear-gradient(90deg,rgba(47,191,138,.18),rgba(255,111,166,.14),rgba(255,209,102,.18));
    --r18: 18px;
    --r14: 14px;
}

/* 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-left: .9rem;
    padding-right: .9rem;
}

    .module[data-module="image"] > div:first-child:not(:empty) {
        margin-top: .6rem;
        margin-bottom: .6rem;
    }

    .module[data-module="image"] > div:first-child:empty {
        display: none;
    }

    .module[data-module="image"] figure {
        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;
        }

@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: var(--r14) !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%;
            border-radius: inherit;
            object-fit: contain;
            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;
            }

/* ---------------- 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;
        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 ---------------- */
.module[data-module="map"] .ratio {
    border-radius: var(--r14) !important;
    border: 1px solid var(--g-border-soft);
    background-color: rgba(243,255,239,.70);
    box-shadow: 0 8px 18px rgba(16,32,16,.10);
    overflow: hidden;
    aspect-ratio: 16/10;
}

.module[data-module="map"] iframe {
    display: block;
    border: 0;
    width: 100%;
    height: 100%;
}

/* ---------------- 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="elencoprodotti_001"] .mt-3.d-flex .btn,
.module[data-module="elencoprodotti_001"] .mt-3.d-flex .btn-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;
}

@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;
}
