.rbwd-widget-host,
.rbwd-widget-host--legacy,
.widget_rbwd_legacy_widget {
    box-sizing: border-box !important;
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.rbwd-widget-host::before,
.rbwd-widget-host::after {
    display: none !important;
    content: none !important;
}

/*
 * Alcuni temi / editor a blocchi aggiungono un ulteriore wrapper al legacy widget.
 * Lo neutralizziamo solo quando contiene direttamente l'host RBWD.
 */
:where(.wp-block-legacy-widget, .wp-block-widget, .widget_block):has(> .rbwd-widget-host),
:where(.wp-block-legacy-widget, .wp-block-widget, .widget_block):has(> [data-rbwd-host="legacy"]),
:where(.wp-block-legacy-widget, .wp-block-widget, .widget_block):has(> .rbwd-card) {
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.rbwd-card,
a.rbwd-card {
    --rbwd-bg: #ffffff;
    --rbwd-color: #1d2327;
    --rbwd-border-color: #e0e0e0;
    --rbwd-border-width: 0px;
    --rbwd-radius: 0px;
    --rbwd-text-align: left;
    --rbwd-font-family: inherit;
    --rbwd-font-weight: 400;
    --rbwd-image-fit: contain;
    --rbwd-desktop-min-height: 190px;
    --rbwd-desktop-padding: 40px;
    --rbwd-desktop-font-size: 18px;
    --rbwd-tablet-min-height: 180px;
    --rbwd-tablet-padding: 32px;
    --rbwd-tablet-font-size: 18px;
    --rbwd-mobile-min-height: 170px;
    --rbwd-mobile-padding: 24px;
    --rbwd-mobile-font-size: 18px;
    --rbwd-bg-image: none;

    position: relative !important;
    isolation: isolate !important;
    box-sizing: border-box !important;
    display: flex !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: var(--rbwd-desktop-min-height) !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    border: var(--rbwd-border-width) solid var(--rbwd-border-color) !important;
    border-radius: var(--rbwd-radius) !important;
    background-color: var(--rbwd-bg) !important;
    background-image: none !important;
    color: var(--rbwd-color) !important;
    text-align: var(--rbwd-text-align) !important;
    text-decoration: none !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    font-family: var(--rbwd-font-family) !important;
    font-size: var(--rbwd-desktop-font-size) !important;
    font-style: normal !important;
    font-weight: var(--rbwd-font-weight) !important;
    line-height: 1.65 !important;
    transition: transform 180ms ease, box-shadow 180ms ease, opacity 180ms ease !important;
}

.rbwd-card:not(.rbwd-layout-background)::before,
.rbwd-card::after {
    display: none !important;
    content: none !important;
}

.rbwd-card:visited,
.rbwd-card:hover,
.rbwd-card:focus,
.rbwd-card:active {
    color: var(--rbwd-color) !important;
    text-decoration: none !important;
}

.rbwd-card:focus-visible {
    outline: 3px solid currentColor !important;
    outline-offset: 3px !important;
}

.rbwd-card *,
.rbwd-card *::before,
.rbwd-card *::after {
    box-sizing: border-box !important;
}

.rbwd-card__content {
    position: relative !important;
    z-index: 1 !important;
    box-sizing: border-box !important;
    display: flex !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    flex-direction: column !important;
    justify-content: center !important;
    gap: 18px !important;
    margin: 0 !important;
    padding: var(--rbwd-desktop-padding) !important;
    border: 0 !important;
    background: transparent !important;
}

.rbwd-card__text {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: inherit !important;
    text-align: inherit !important;
    text-decoration: none !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    font: inherit !important;
    line-height: inherit !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
}

.rbwd-card__text p,
.rbwd-card__text span,
.rbwd-card__text strong,
.rbwd-card__text b,
.rbwd-card__text em,
.rbwd-card__text i {
    color: inherit !important;
    text-align: inherit !important;
    text-decoration: inherit !important;
    text-transform: inherit !important;
    letter-spacing: inherit !important;
    font-family: inherit !important;
    font-size: inherit !important;
    line-height: inherit !important;
}

.rbwd-card__text p {
    margin: 0 0 0.85em !important;
    padding: 0 !important;
}

.rbwd-card__text p:last-child {
    margin-bottom: 0 !important;
}

.rbwd-card__cta {
    display: inline-flex !important;
    align-self: var(--rbwd-cta-align, flex-start) !important;
    width: fit-content !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 42px !important;
    box-sizing: border-box !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    padding: 8px 16px !important;
    border: 1px solid currentColor !important;
    border-radius: max(4px, calc(var(--rbwd-radius) * 0.45)) !important;
    background: transparent !important;
    color: inherit !important;
    font-family: inherit !important;
    font-size: 0.85em !important;
    font-style: normal !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    text-decoration: none !important;
}

.rbwd-card__cta[hidden],
.rbwd-card__cta:empty,
.rbwd-card__media[hidden],
.rbwd-card__media:empty {
    display: none !important;
    width: 0 !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}

.rbwd-card[style*="--rbwd-text-align:center"] {
    --rbwd-cta-align: center;
}

.rbwd-card[style*="--rbwd-text-align:right"] {
    --rbwd-cta-align: flex-end;
}

.rbwd-card__media {
    position: relative !important;
    z-index: 1 !important;
    box-sizing: border-box !important;
    display: flex !important;
    min-width: 0 !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    overflow: hidden !important;
    border: 0 !important;
    background: transparent !important;
}

.rbwd-card__image {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    object-fit: var(--rbwd-image-fit) !important;
}

.rbwd-layout-text {
    flex-direction: row !important;
}

.rbwd-layout-image-top {
    flex-direction: column !important;
}

.rbwd-layout-image-top .rbwd-card__media {
    width: 100% !important;
    min-height: 120px !important;
    max-height: 280px !important;
    padding: calc(var(--rbwd-desktop-padding) * 0.65) var(--rbwd-desktop-padding) 0 !important;
}

.rbwd-layout-image-top .rbwd-card__image {
    height: auto !important;
    max-height: 240px !important;
}

.rbwd-layout-image-left {
    flex-direction: row !important;
}

.rbwd-layout-image-left .rbwd-card__media {
    flex: 0 0 38% !important;
    min-height: inherit !important;
    padding: calc(var(--rbwd-desktop-padding) * 0.65) !important;
}

.rbwd-layout-background {
    background-image: var(--rbwd-bg-image) !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    background-size: cover !important;
}

.rbwd-layout-background::before {
    position: absolute !important;
    z-index: 0 !important;
    inset: 0 !important;
    display: block !important;
    content: "" !important;
    background: linear-gradient(0deg, color-mix(in srgb, var(--rbwd-bg) 52%, transparent), color-mix(in srgb, var(--rbwd-bg) 52%, transparent)) !important;
    pointer-events: none !important;
}

.rbwd-shadow-none {
    box-shadow: none !important;
}

.rbwd-shadow-soft {
    box-shadow: 0 4px 14px rgb(0 0 0 / 0.08) !important;
}

.rbwd-shadow-medium {
    box-shadow: 0 9px 24px rgb(0 0 0 / 0.14) !important;
}

.rbwd-shadow-strong {
    box-shadow: 0 14px 34px rgb(0 0 0 / 0.22) !important;
}

@media (hover: hover) and (pointer: fine) {
    .rbwd-hover-lift:hover {
        transform: translateY(-3px) !important;
    }

    .rbwd-hover-scale:hover {
        transform: scale(1.015) !important;
    }

    .rbwd-hover-shadow:hover {
        box-shadow: 0 16px 38px rgb(0 0 0 / 0.25) !important;
    }

    .rbwd-hover-fade:hover {
        opacity: 0.86 !important;
    }
}

@media (max-width: 1024px) {
    .rbwd-card,
    a.rbwd-card {
        min-height: var(--rbwd-tablet-min-height) !important;
        font-size: var(--rbwd-tablet-font-size) !important;
    }

    .rbwd-card__content {
        padding: var(--rbwd-tablet-padding) !important;
    }

    .rbwd-layout-image-top .rbwd-card__media {
        padding: calc(var(--rbwd-tablet-padding) * 0.65) var(--rbwd-tablet-padding) 0 !important;
    }

    .rbwd-layout-image-left .rbwd-card__media {
        padding: calc(var(--rbwd-tablet-padding) * 0.65) !important;
    }
}

@media (max-width: 600px) {
    .rbwd-card,
    a.rbwd-card {
        min-height: var(--rbwd-mobile-min-height) !important;
        font-size: var(--rbwd-mobile-font-size) !important;
    }

    .rbwd-card__content {
        padding: var(--rbwd-mobile-padding) !important;
    }

    .rbwd-layout-image-top .rbwd-card__media {
        padding: calc(var(--rbwd-mobile-padding) * 0.65) var(--rbwd-mobile-padding) 0 !important;
    }

    .rbwd-layout-image-left {
        flex-direction: column !important;
    }

    .rbwd-layout-image-left .rbwd-card__media {
        flex-basis: auto !important;
        width: 100% !important;
        min-height: 120px !important;
        max-height: 220px !important;
        padding: calc(var(--rbwd-mobile-padding) * 0.65) var(--rbwd-mobile-padding) 0 !important;
    }

    .rbwd-layout-image-left .rbwd-card__image {
        height: auto !important;
        max-height: 200px !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .rbwd-card,
    a.rbwd-card {
        transition: none !important;
    }
}
