:root {
    --ad-bg: #f4f8ff;
    --ad-paper: rgba(255,255,255,.94);
    --ad-surface: rgba(255,255,255,.78);
    --ad-ink: #052b3d;
    --ad-ink-2: rgba(5,43,61,.78);
    --ad-muted: rgba(5,43,61,.60);
    --ad-border: rgba(31,111,235,.18);
    --ad-border-2: rgba(22,179,196,.14);
    --ad-link: #1f6feb;
    --ad-link-2: #16b3c4;
    --ad-radius: 18px;
    --ad-radius-in: 14px;
    --ad-shadow: 0 10px 26px rgba(5,43,61,.10);
    --ad-shadow-soft: 0 6px 16px rgba(5,43,61,.08);
    /* sfondo vivace (geo + wash) */
    --ad-line: rgba(5,43,61,.040);
    --ad-line-2: rgba(5,43,61,.028);
    --ad-arc-a: rgba(31,111,235,.14);
    --ad-arc-b: rgba(255,77,87,.11);
    --ad-geo-soft: repeating-linear-gradient(135deg,var(--ad-line) 0 1px,transparent 1px 44px), repeating-linear-gradient(45deg,var(--ad-line-2) 0 1px,transparent 1px 58px), radial-gradient(520px 520px at 12% 12%,transparent 0 64%,var(--ad-arc-a) 64% 64.6%,transparent 64.6% 100%), radial-gradient(620px 620px at 88% 18%,transparent 0 60%,var(--ad-arc-b) 60% 60.6%,transparent 60.6% 100%);
    --ad-wash-vivid: radial-gradient(900px 260px at 0% 0%,rgba(31,111,235,.14),transparent 62%), radial-gradient(900px 280px at 100% 0%,rgba(255,77,87,.12),transparent 62%), radial-gradient(1000px 320px at 40% 100%,rgba(22,179,196,.11),transparent 64%), radial-gradient(900px 300px at 20% 85%,rgba(255,176,0,.10),transparent 65%), radial-gradient(880px 280px at 85% 70%,rgba(216,27,96,.09),transparent 66%);
    --ad-module-bg: var(--ad-geo-soft),var(--ad-wash-vivid),var(--ad-paper);
    --ad-panel-bg: radial-gradient(860px 260px at 10% 0%,rgba(31,111,235,.07),transparent 66%), radial-gradient(860px 260px at 95% 0%,rgba(255,77,87,.06),transparent 66%), radial-gradient(860px 260px at 50% 110%,rgba(22,179,196,.06),transparent 68%), var(--ad-surface);
    --ad-title-bg: linear-gradient(90deg,rgba(31,111,235,.10),rgba(22,179,196,.08),rgba(255,77,87,.08),rgba(255,176,0,.07));
    --ad-btn-bg: linear-gradient(90deg,rgba(31,111,235,.14),rgba(22,179,196,.12),rgba(255,77,87,.10),rgba(255,176,0,.09));
    --ad-sep: linear-gradient(90deg,transparent,rgba(31,111,235,.35),rgba(22,179,196,.30),rgba(255,77,87,.28),rgba(255,176,0,.24),transparent);
}

/* BASE MODULI */
.module:is([data-module="text"],[data-module="richtext"],[data-module="image"],[data-module="youtube-text"],[data-module="video-file"],[data-module="immagini"],[data-module="gallery"],[data-module="elencoprodotti_001"]) {
    border-radius: var(--ad-radius);
    border: 1px solid var(--ad-border);
    background: var(--ad-module-bg);
    box-shadow: var(--ad-shadow);
    color: var(--ad-ink);
    position: relative;
    overflow: hidden;
}

.module[data-module="richtext"] {
    border-radius: var(--ad-radius-in);
    box-shadow: var(--ad-shadow-soft)
}

.module[data-module="text"] {
    padding: .55rem .65rem
}

.module[data-module="richtext"] {
    padding: .25rem .3rem
}

.module[data-module="image"] {
    padding: 0 .9rem
}

.module:is([data-module="youtube-text"],[data-module="video-file"],[data-module="immagini"],[data-module="gallery"],[data-module="elencoprodotti_001"]) {
    padding: .35rem .6rem
}

/* link */
.module :is(.module-text a,p a,.rm-preview a,.rm-full a) {
    color: var(--ad-link);
    text-decoration: underline;
    text-underline-offset: 2px;
    text-decoration-thickness: 1px
}

.module :is(.module-text a:hover,p a:hover,.rm-preview a:hover,.rm-full a:hover) {
    color: var(--ad-link-2)
}

/* TEXT */
.module[data-module="text"] :is(.lead,.module-text,p) {
    margin: 0;
    padding: 0;
    position: relative
}

.module[data-module="text"] .lead:not(:empty) {
    padding: .7rem .9rem;
    font-size: 1.12rem;
    letter-spacing: .12px;
    border-radius: var(--ad-radius-in);
    border: 1px solid var(--ad-border-2);
    background: var(--ad-title-bg);
    color: var(--ad-ink)
}

.module[data-module="text"] .lead + .module-text {
    margin-top: .55rem
}

.module[data-module="text"] :is(.module-text:not(:empty),p:not(:empty)) {
    padding: .8rem .9rem;
    font-size: 1rem;
    line-height: 1.6;
    color: var(--ad-ink-2);
    border-radius: var(--ad-radius-in);
    border: 1px solid var(--ad-border-2);
    background: var(--ad-panel-bg)
}

.module[data-module="text"] :is(.lead:empty,.module-text:empty,p:empty) {
    display: none
}

.module[data-module="text"] .mt-3.d-flex {
    margin-top: .75rem !important;
    margin-bottom: .45rem !important
}

/* RICHTEXT */
.module[data-module="richtext"] :is(.rm-preview,.rm-full) {
    padding: .75rem .85rem;
    font-size: 1.05rem;
    line-height: 1.65;
    color: var(--ad-ink-2)
}

.module[data-module="richtext"] :is(.rm-preview p,.rm-full p,.rm-preview li,.rm-full li) {
    font-size: 1.05rem;
    line-height: 1.65
}

.module[data-module="richtext"] :is(.rm-preview h1,.rm-full h1) {
    font-size: 1.55rem
}

.module[data-module="richtext"] :is(.rm-preview h2,.rm-full h2) {
    font-size: 1.35rem
}

.module[data-module="richtext"] :is(.rm-preview h3,.rm-full h3) {
    font-size: 1.18rem
}

.module[data-module="richtext"] .readmore-toggle-rich {
    display: inline-block;
    margin: .45rem .85rem .15rem;
    padding: .45rem .75rem;
    border-radius: 999px;
    font-size: .95rem;
    border: 1px solid var(--ad-border);
    background: rgba(255,255,255,.60);
    color: var(--ad-ink);
    text-decoration: none
}

.module[data-module="richtext"] .text-muted {
    padding: 0 .85rem .75rem;
    font-size: .85rem;
    color: var(--ad-muted);
    opacity: 1
}

/* IMAGE */
.module[data-module="image"] > div:first-child:not(:empty) {
    margin: .6rem 0
}

.module[data-module="image"] > div:first-child:empty {
    display: none
}

.module[data-module="image"] figure {
    border-radius: var(--ad-radius-in);
    overflow: hidden;
    border: 1px solid var(--ad-border-2);
    background: rgba(255,255,255,.65)
}

    .module[data-module="image"] figure img {
        display: block;
        width: 100%;
        height: auto
    }

.module[data-module="image"] .mt-2 {
    margin-top: .85rem !important;
    font-size: .95rem;
    line-height: 1.6;
    color: var(--ad-ink-2)
}

.module[data-module="image"] hr {
    border: 0;
    height: 2px;
    border-radius: 999px;
    background: var(--ad-sep);
    margin: .75rem 0
}

.module[data-module="image"] .price-box {
    margin-top: 7px !important;
    padding: .55rem .85rem;
    border-radius: var(--ad-radius-in);
    border: 1px solid var(--ad-border-2);
    background: rgba(255,255,255,.70);
    display: inline-block
}

.module[data-module="image"] .price-main {
    font-size: 1.2rem;
    letter-spacing: .3px
}

.module[data-module="image"] .price-old {
    opacity: .55;
    margin-left: .45rem;
    font-size: .9rem;
    text-decoration: line-through
}

.module[data-module="image"] .price-sub {
    font-size: .8rem;
    color: var(--ad-muted);
    opacity: 1
}

/* variante "solo immagine" (desktop/tablet) */
.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;
        box-shadow: none !important;
        border-radius: var(--ad-radius) !important
    }

        .module[data-module="image"]:has(>figure:only-child) > figure img {
            border-radius: var(--ad-radius) !important
        }

/* YOUTUBE */
.module[data-module="youtube-text"] h3 {
    margin: .4rem 0 .5rem;
    padding: .45rem .7rem;
    border-radius: var(--ad-radius-in);
    border: 1px solid var(--ad-border-2);
    background: var(--ad-title-bg)
}

.module[data-module="youtube-text"] .ratio {
    border-radius: var(--ad-radius-in) !important;
    border: 1px solid var(--ad-border-2);
    background: rgba(255,255,255,.65);
    box-shadow: var(--ad-shadow-soft);
    overflow: hidden;
    margin-top: .6rem
}

    .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(--ad-radius-in);
    background: var(--ad-panel-bg);
    border: 1px solid var(--ad-border-2);
    line-height: 1.6;
    color: var(--ad-ink-2)
}

/* VIDEO-FILE */
.module[data-module="video-file"] {
    --vf-aspect: 16/9;
    padding-top: .4rem
}

    .module[data-module="video-file"]:has(>.video-wrap.only-video:only-child) {
        padding-top: 1rem !important;
        padding-right: 0 !important;
        padding-bottom: 0 !important;
        padding-left: 0 !important
    }

    .module[data-module="video-file"] h3 {
        margin: .4rem 0 .5rem;
        padding: .45rem .7rem;
        border-radius: var(--ad-radius-in);
        border: 1px solid var(--ad-border-2);
        background: var(--ad-title-bg);
        font-size: 1.05rem
    }

    .module[data-module="video-file"] .video-wrap {
        border-radius: var(--ad-radius-in) !important;
        border: 1px solid var(--ad-border-2);
        background: rgba(255,255,255,.65);
        box-shadow: var(--ad-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(--ad-radius-in);
        background: var(--ad-panel-bg);
        border: 1px solid var(--ad-border-2);
        line-height: 1.6;
        color: var(--ad-ink-2)
    }

    .module[data-module="video-file"] hr {
        border: 0;
        height: 2px;
        border-radius: 999px;
        background: var(--ad-sep);
        margin: .75rem 0
    }

    .module[data-module="video-file"] .price-box {
        margin-top: .5rem;
        padding: 0;
        border: 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: .3px
    }

    .module[data-module="video-file"] .price-old {
        opacity: .55;
        margin-left: .45rem;
        font-size: .9rem;
        text-decoration: line-through
    }

    .module[data-module="video-file"] .price-sub {
        display: block;
        margin-top: .15rem;
        font-size: .8rem;
        color: var(--ad-muted);
        opacity: 1
    }

/* IMMAGINI */
.module[data-module="immagini"] .module-title {
    margin: .4rem 0 .6rem;
    padding: .45rem .7rem;
    border-radius: var(--ad-radius-in);
    border: 1px solid var(--ad-border-2);
    background: var(--ad-title-bg)
}

.module[data-module="immagini"] .row {
    --bs-gutter-x: .45rem;
    --bs-gutter-y: .45rem;
    margin-top: .1rem;
    --bs-gutter-y: 0
}

.module[data-module="immagini"] .col img {
    border-radius: var(--ad-radius-in);
    border: 1px solid var(--ad-border-2);
    background: rgba(255,255,255,.65);
    display: block;
    width: 100%;
    height: auto
}

.module[data-module="immagini"] p {
    margin-top: .6rem;
    padding: .5rem .7rem;
    border-radius: var(--ad-radius-in);
    background: var(--ad-panel-bg);
    border: 1px solid var(--ad-border-2);
    line-height: 1.6;
    color: var(--ad-ink-2)
}

.module[data-module="immagini"] .price-separator {
    border: 0;
    height: 2px;
    border-radius: 999px;
    background: var(--ad-sep)
}

.module[data-module="immagini"] .price-box {
    padding: .5rem .8rem;
    border-radius: var(--ad-radius-in);
    border: 1px solid var(--ad-border-2);
    background: rgba(255,255,255,.70);
    display: inline-block
}

.module[data-module="immagini"] .price-main {
    font-size: 1.2rem;
    letter-spacing: .3px
}

.module[data-module="immagini"] .price-old {
    opacity: .55;
    margin-left: .45rem;
    font-size: .9rem;
    text-decoration: line-through
}

.module[data-module="immagini"] .price-sub {
    font-size: .8rem;
    color: var(--ad-muted);
    opacity: 1
}

@media (max-width:575.98px) {
    .module[data-module="immagini"] .row > .col {
        padding-bottom: .45rem
    }
}

/* GALLERY */
.module[data-module="gallery"] .module-title {
    margin: .4rem 0 .6rem;
    padding: .45rem .7rem;
    border-radius: var(--ad-radius-in);
    border: 1px solid var(--ad-border-2);
    background: var(--ad-title-bg)
}

.module[data-module="gallery"] .carousel {
    border-radius: var(--ad-radius-in);
    border: 1px solid var(--ad-border-2);
    background: rgba(255,255,255,.65);
    box-shadow: var(--ad-shadow-soft);
    overflow: hidden
}

.module[data-module="gallery"] .carousel-inner {
    border-radius: var(--ad-radius-in)
}

.module[data-module="gallery"] .carousel-item img {
    width: 100%;
    display: block
}

.module[data-module="gallery"] .carousel-indicators [data-bs-target] {
    width: 10px;
    height: 10px;
    border-radius: 999px;
    border: 1px solid rgba(31,111,235,.18);
    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(--ad-radius-in);
    background: var(--ad-panel-bg);
    border: 1px solid var(--ad-border-2);
    line-height: 1.6;
    color: var(--ad-ink-2)
}

.module[data-module="gallery"] .price-separator {
    border: 0;
    height: 2px;
    border-radius: 999px;
    background: var(--ad-sep)
}

.module[data-module="gallery"] .price-box {
    padding: .5rem .8rem;
    border-radius: var(--ad-radius-in);
    border: 1px solid var(--ad-border-2);
    background: rgba(255,255,255,.70);
    display: inline-block;
    margin-top: 7px !important
}

.module[data-module="gallery"] .price-main {
    font-size: 1.2rem;
    letter-spacing: .3px
}

.module[data-module="gallery"] .price-old {
    opacity: .55;
    margin-left: .45rem;
    font-size: .9rem;
    text-decoration: line-through
}

.module[data-module="gallery"] .price-sub {
    font-size: .8rem;
    color: var(--ad-muted);
    opacity: 1
}

/* ELENCO PRODOTTI */
.module[data-module="elencoprodotti_001"] .module-text {
    padding: .55rem .7rem;
    border-radius: var(--ad-radius-in);
    background: var(--ad-panel-bg);
    border: 1px solid var(--ad-border-2);
    color: var(--ad-ink-2)
}

.module[data-module="elencoprodotti_001"] .item-row {
    border-radius: 12px;
    padding: 0 .4rem
}

.module[data-module="elencoprodotti_001"] hr {
    border: 0;
    height: 2px;
    margin: .45rem 0 !important;
    border-radius: 999px;
    background: var(--ad-sep)
}

.module[data-module="elencoprodotti_001"] .price-box {
    padding: .5rem .75rem;
    border-radius: var(--ad-radius-in);
    border: 1px solid var(--ad-border-2);
    background: rgba(255,255,255,.70);
    box-shadow: var(--ad-shadow-soft);
    display: inline-block
}

.module[data-module="elencoprodotti_001"] .price-main {
    font-size: 1.15rem;
    letter-spacing: .2px;
    color: var(--ad-ink)
}

.module[data-module="elencoprodotti_001"] .price-old {
    opacity: .55;
    margin-left: .4rem;
    font-size: .9rem;
    text-decoration: line-through
}

.module[data-module="elencoprodotti_001"] .price-sub {
    font-size: .8rem;
    color: var(--ad-muted);
    opacity: 1
}

.module[data-module="elencoprodotti_001"] .price-apartireda-label {
    font-size: .78rem;
    color: var(--ad-muted);
    opacity: 1;
    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;
    color: var(--ad-ink-2);
    opacity: 1
}

.module[data-module="elencoprodotti_001"] .price-box:has(.price-old) .price-main {
    color: #e0002a
}

.module[data-module="elencoprodotti_001"] .mt-3.d-flex .btn {
    white-space: nowrap
}

/* MAP */
.module[data-module="map"] .ratio {
    border-radius: var(--ad-radius-in) !important;
    border: 1px solid var(--ad-border-2);
    background: rgba(255,255,255,.65);
    box-shadow: var(--ad-shadow-soft);
    overflow: hidden;
    aspect-ratio: 16/10
}

.module[data-module="map"] iframe {
    display: block;
    border: 0;
    width: 100%;
    height: 100%
}

@media (max-width:576px) {
    .module[data-module="map"] .ratio {
        aspect-ratio: 4/3
    }
}

/* BUTTON MODULE */
.module[data-module="button"] {
    border-radius: var(--ad-radius);
    border: 1px solid var(--ad-border);
    background: var(--ad-module-bg);
    box-shadow: var(--ad-shadow);
    overflow: hidden;
    padding: .45rem
}

    .module[data-module="button"] .button-click-area {
        border-radius: var(--ad-radius-in);
        padding: .7rem .9rem
    }

    .module[data-module="button"] .button-title {
        font-size: 1.05rem;
        letter-spacing: .1px;
        color: inherit
    }

    .module[data-module="button"] i {
        color: inherit
    }

/* CTA / VISIT / PDF */
.module:is([data-module="cta-coupon"],[data-module="cta-visit-site"],[data-module="pdf-download"]) {
    border-radius: var(--ad-radius);
    border: 1px solid var(--ad-border);
    background: var(--ad-module-bg);
    box-shadow: var(--ad-shadow-soft);
    overflow: hidden
}

.module[data-module="cta-coupon"] {
    padding: .35rem .6rem;
    font-size: .95rem
}

.module[data-module="cta-visit-site"] {
    padding: .55rem .7rem;
    font-size: .9rem
}

.module[data-module="pdf-download"] {
    padding: .25rem .35rem
}

.module:is([data-module="cta-coupon"],[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
}

.module[data-module="cta-visit-site"] .lead {
    font-size: .95rem;
    line-height: 1.2;
    margin: 0;
    color: var(--ad-ink)
}

.module[data-module="pdf-download"] .download-card {
    border-radius: 12px;
    border: 1px solid var(--ad-border-2);
    background: rgba(255,255,255,.70);
    padding: .35rem .45rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .35rem
}

/* BOTTONI UNIFICATI */
.module :is(.mt-3.d-flex .btn,.mt-3.d-flex .btn.btn-primary,.mt-3.d-flex .btn-primary),
.module[data-module="cta-visit-site"] :is(.btn,a.btn,button),
.module[data-module="pdf-download"] .btn {
    border-radius: 999px;
    padding: .62rem 1rem;
    font-size: 1rem;
    line-height: 1.1;
    border: 1px solid var(--ad-border) !important;
    color: var(--ad-ink) !important;
    background: var(--ad-btn-bg),rgba(255,255,255,.60) !important;
    box-shadow: var(--ad-shadow-soft);
    text-decoration: none !important;
    --bs-btn-bg: transparent;
    --bs-btn-border-color: transparent;
    --bs-btn-hover-bg: transparent;
    --bs-btn-active-bg: transparent;
    --bs-btn-color: var(--ad-ink)
}

    .module :is(.mt-3.d-flex .btn:hover,.mt-3.d-flex .btn.btn-primary:hover,.mt-3.d-flex .btn-primary:hover),
    .module[data-module="cta-visit-site"] :is(.btn:hover,a.btn:hover,button:hover),
    .module[data-module="pdf-download"] .btn:hover {
        background: rgba(255,255,255,.85) !important
    }

    .module :is(.mt-3.d-flex .btn:focus,.mt-3.d-flex .btn:focus-visible),
    .module[data-module="cta-visit-site"] :is(.btn:focus,.btn:focus-visible,a.btn:focus,a.btn:focus-visible,button:focus,button:focus-visible),
    .module[data-module="pdf-download"] .btn:focus {
        outline: none;
        box-shadow: 0 0 0 .22rem rgba(31,111,235,.18),var(--ad-shadow-soft)
    }

/* spazi bottone */
.module[data-module="text"] .mt-3.d-flex {
    margin-top: .75rem !important;
    margin-bottom: .45rem !important
}

.module:is([data-module="image"],[data-module="youtube-text"],[data-module="video-file"],[data-module="gallery"],[data-module="elencoprodotti_001"]) .mt-3.d-flex {
    margin-top: .8rem !important;
    margin-bottom: .55rem !important
}

.module[data-module="image"] :is(.price-box + .mt-3.d-flex,.text-end + .mt-3.d-flex,.text-muted + .mt-3.d-flex),
.module[data-module="youtube-text"] :is(.module-text + .mt-3.d-flex,.text-end + .mt-3.d-flex,.text-muted + .mt-3.d-flex),
.module[data-module="video-file"] :is(.price-box + .mt-3.d-flex,.module-text + .mt-3.d-flex,.text-end + .mt-3.d-flex,.text-muted + .mt-3.d-flex),
.module[data-module="gallery"] :is(.price-box + .mt-3.d-flex,.text-end + .mt-3.d-flex,.text-muted + .mt-3.d-flex),
.module[data-module="elencoprodotti_001"] :is(.price-box + .mt-3.d-flex,.module-text + .mt-3.d-flex,.text-end + .mt-3.d-flex,.text-muted + .mt-3.d-flex) {
    margin-top: .6rem !important
}

/* MOBILE */
@media (max-width:576px) {
    /* alleggerimento: su mobile riduco drasticamente i layer dei background e disabilito gli elementi più costosi */
    :root {
        --ad-geo-soft: radial-gradient(520px 520px at 12% 12%, rgba(31,111,235,.10), transparent 62%), radial-gradient(560px 560px at 88% 18%, rgba(255,77,87,.09), transparent 64%);
        --ad-wash-vivid: radial-gradient(900px 300px at 40% 100%, rgba(22,179,196,.08), transparent 66%);
        --ad-module-bg: var(--ad-geo-soft), var(--ad-wash-vivid), rgba(255,255,255,.95);
        --ad-panel-bg: radial-gradient(900px 260px at 10% 0%, rgba(31,111,235,.05), transparent 70%), rgba(255,255,255,.78);
        --ad-sep: linear-gradient(90deg, transparent, rgba(31,111,235,.22), rgba(22,179,196,.18), transparent);
        --ad-shadow: 0 8px 18px rgba(5,43,61,.09);
        --ad-shadow-soft: 0 5px 12px rgba(5,43,61,.07);
    }

    .module:is([data-module="text"],[data-module="richtext"],[data-module="image"],[data-module="youtube-text"],[data-module="video-file"],[data-module="immagini"],[data-module="gallery"],[data-module="elencoprodotti_001"],[data-module="button"],[data-module="cta-coupon"],[data-module="cta-visit-site"],[data-module="pdf-download"],[data-module="questionario"]) {
        border-radius: 16px;
        box-shadow: var(--ad-shadow-soft) !important;
        background: var(--ad-module-bg) !important
    }

    .module[data-module="text"] .lead:not(:empty) {
        font-size: 1.06rem
    }

    .module[data-module="richtext"] :is(.rm-preview,.rm-full) {
        font-size: 1.03rem;
        padding: .7rem .75rem
    }

    .module[data-module="richtext"] :is(.rm-preview p,.rm-full p,.rm-preview li,.rm-full li) {
        font-size: 1.03rem
    }

    .module[data-module="richtext"] .readmore-toggle-rich {
        font-size: .9rem;
        margin: .4rem .75rem .15rem
    }

    .module[data-module="richtext"] .text-muted {
        font-size: .82rem;
        padding: 0 .75rem .7rem
    }

    .module :is(.mt-3.d-flex .btn,.mt-3.d-flex .btn.btn-primary,.mt-3.d-flex .btn-primary) {
        font-size: .98rem;
        padding: .6rem .95rem
    }

    .module[data-module="cta-visit-site"] .lead {
        font-size: .93rem
    }

    .module[data-module="cta-visit-site"] :is(.btn,a.btn,button) {
        font-size: .84rem;
        padding: .42rem .8rem
    }

    .module[data-module="image"]:has(>figure:only-child) > :is(figure,figure img) {
        border-radius: 16px !important
    }

    /* disattivo su mobile la variante "solo immagine" basata su :has() per evitare costi extra */
    .module[data-module="image"]:has(>figure:only-child) {
        padding: 0 .9rem !important;
        border: 1px solid var(--ad-border) !important;
        background: var(--ad-module-bg) !important;
        box-shadow: var(--ad-shadow-soft) !important;
        overflow: hidden !important;
        border-radius: var(--ad-radius) !important
    }

        .module[data-module="image"]:has(>figure:only-child) > figure {
            border: 1px solid var(--ad-border-2) !important;
            background: rgba(255,255,255,.65) !important;
            box-shadow: none !important;
            border-radius: var(--ad-radius-in) !important
        }

            .module[data-module="image"]:has(>figure:only-child) > figure img {
                border-radius: inherit !important
            }
}

/* performance mobile */
@supports (content-visibility:auto) {
    @media (max-width:576px) {
        .module {
            content-visibility: auto;
            contain-intrinsic-size: 320px
        }
    }
}

/* padding-top price-box */
.module:not([data-module="video-file"]) .price-box {
    padding-top: .65rem !important
}

.module[data-module="gallery"] .price-box,
.module[data-module="immagini"] .price-box,
.module[data-module="elencoprodotti_001"] .price-box {
    padding-top: .60rem !important
}

/* QUESTIONARIO */
.module[data-module="questionario"] {
    border: 1px solid var(--ad-border);
    border-radius: var(--ad-radius);
    background: var(--ad-module-bg);
    box-shadow: var(--ad-shadow);
    color: var(--ad-ink);
    position: relative;
    overflow: hidden;
    padding: .35rem .6rem
}

    .module[data-module="questionario"] .q-preview {
        border: 1px solid var(--ad-border-2);
        border-radius: var(--ad-radius-in) !important;
        background: rgba(255,255,255,.70);
        box-shadow: var(--ad-shadow-soft)
    }

    .module[data-module="questionario"] .q-full {
        border-radius: var(--ad-radius-in)
    }

    .module[data-module="questionario"] .badge {
        border: 1px solid var(--ad-border-2);
        background: var(--ad-title-bg) !important;
        color: var(--ad-ink) !important;
        font-weight: 500
    }

    .module[data-module="questionario"] a {
        color: var(--ad-link);
        text-decoration: underline;
        text-underline-offset: 2px;
        text-decoration-thickness: 1px
    }

        .module[data-module="questionario"] a:hover {
            color: var(--ad-link-2)
        }

    .module[data-module="questionario"] :is(.form-control,.form-select) {
        border: 1px solid var(--ad-border-2);
        border-radius: var(--ad-radius-in);
        background: rgba(255,255,255,.72);
        color: var(--ad-ink);
        box-shadow: none
    }

        .module[data-module="questionario"] :is(.form-control,.form-select):focus {
            outline: 0;
            border-color: rgba(31,111,235,.35);
            box-shadow: 0 0 0 .22rem rgba(31,111,235,.18)
        }

    .module[data-module="questionario"] .form-control::placeholder {
        color: rgba(5,43,61,.45)
    }

    .module[data-module="questionario"] .form-label {
        color: var(--ad-ink)
    }

    .module[data-module="questionario"] .alert {
        border: 1px solid var(--ad-border-2);
        border-radius: var(--ad-radius-in);
        background: var(--ad-panel-bg);
        box-shadow: var(--ad-shadow-soft);
        color: var(--ad-ink)
    }

    .module[data-module="questionario"] .alert-danger {
        background: rgba(224,0,42,.08)
    }

    .module[data-module="questionario"] .form-check-input {
        border: 1px solid var(--ad-border-2);
        transform: scale(1.2);
        margin-top: .25rem
    }

        .module[data-module="questionario"] .form-check-input:checked {
            background-color: rgba(31,111,235,.75);
            border-color: rgba(31,111,235,.75)
        }

    .module[data-module="questionario"] .rating-5 .rating-item {
        padding: .15rem .25rem;
        border-radius: 10px;
        border: 1px solid var(--ad-border-2);
        background: rgba(255,255,255,.70);
        position: relative;
        cursor: pointer
    }

        .module[data-module="questionario"] .rating-5 .rating-item input[type="radio"] {
            position: absolute;
            opacity: 0;
            pointer-events: none;
            accent-color: rgba(31,111,235,.85)
        }

    .module[data-module="questionario"] .rating-5 .rating-num {
        font-size: .95rem;
        line-height: 1;
        opacity: .75;
        margin-right: 2px;
        color: var(--ad-ink)
    }

    .module[data-module="questionario"] .rating-5 .star {
        font-size: 1.15rem;
        line-height: 1;
        color: rgba(5,43,61,.55);
        opacity: .55;
        transition: color .15s,opacity .15s,transform .15s
    }

    .module[data-module="questionario"] .rating-item input[type="radio"]:checked ~ .rating-num {
        opacity: 1
    }

    .module[data-module="questionario"] .rating-item input[type="radio"]:checked ~ .star {
        color: var(--ad-link-2);
        opacity: 1;
        transform: translateY(-1px)
    }

    .module[data-module="questionario"] :is(.btn,.btn-primary,.btn-outline-primary) {
        border-radius: 999px;
        padding: .62rem 1rem;
        font-size: 1rem;
        line-height: 1.1;
        border: 1px solid var(--ad-border) !important;
        color: var(--ad-ink) !important;
        background: var(--ad-btn-bg),rgba(255,255,255,.60) !important;
        box-shadow: var(--ad-shadow-soft);
        text-decoration: none !important;
        --bs-btn-bg: transparent;
        --bs-btn-border-color: transparent;
        --bs-btn-hover-bg: transparent;
        --bs-btn-active-bg: transparent;
        --bs-btn-color: var(--ad-ink)
    }

        .module[data-module="questionario"] :is(.btn,.btn-primary,.btn-outline-primary):hover {
            background: rgba(255,255,255,.85) !important
        }

        .module[data-module="questionario"] :is(.btn,.btn-primary,.btn-outline-primary):focus,
        .module[data-module="questionario"] :is(.btn,.btn-primary,.btn-outline-primary):focus-visible {
            outline: 0;
            box-shadow: 0 0 0 .22rem rgba(31,111,235,.18),var(--ad-shadow-soft)
        }

    .module[data-module="questionario"] .mt-3.d-flex {
        margin-top: .75rem !important;
        margin-bottom: .45rem !important
    }

@media (max-width:576px) {
    .module[data-module="questionario"] {
        border-radius: 16px;
        box-shadow: var(--ad-shadow-soft)
    }
}
