/*
 * Premium CTA Grid — dba191aa
 * Scoped to this widget to avoid theme and Elementor conflicts.
 */

.cta-grid-dba191aa {
    --cta-surface: #101817;
    --cta-accent: #d9ff72;
    --cta-overlay: rgba(5, 12, 12, 0.94);
    --cta-border: rgba(255, 255, 255, 0.18);
    --cta-heading: #ffffff;
    --cta-description: rgba(255, 255, 255, 0.76);
    --cta-tag-text: #ffffff;
    --cta-tag-bg: rgba(255, 255, 255, 0.12);
    --cta-action-text: #ffffff;
    --cta-action-bg: rgba(255, 255, 255, 0.13);
    --cta-action-hover-text: #101817;
    --cta-action-hover-bg: #d9ff72;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-flow: dense;
    align-items: stretch;
    gap: 18px;
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.cta-grid-dba191aa,
.cta-grid-dba191aa * {
    box-sizing: border-box;
}

.cta-grid-dba191aa > * {
    min-width: 0;
}

.cta-card-dba191aa {
    --cta-card-surface: var(--cta-surface);
    --cta-card-accent: var(--cta-accent);
    --cta-pointer-x: 50%;
    --cta-pointer-y: 50%;
    --cta-tilt-x: 0deg;
    --cta-tilt-y: 0deg;
    --cta-media-x: 0px;
    --cta-media-y: 0px;
    position: relative;
    isolation: isolate;
    display: flex;
    min-height: 390px;
    overflow: hidden;
    border: 1px solid var(--cta-border);
    border-radius: 26px;
    color: var(--cta-heading);
    background:
        radial-gradient(circle at 90% 4%, var(--cta-card-accent) 0, transparent 32%),
        var(--cta-card-surface);
    background-blend-mode: soft-light, normal;
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.08) inset,
        0 18px 50px rgba(6, 17, 15, 0.16),
        0 2px 8px rgba(6, 17, 15, 0.08);
    text-decoration: none;
    transform: perspective(1200px) translate3d(0, 0, 0) rotateX(0deg) rotateY(0deg);
    transform-origin: center center;
    transform-style: preserve-3d;
    transition:
        transform 520ms cubic-bezier(0.16, 1, 0.3, 1),
        box-shadow 520ms cubic-bezier(0.16, 1, 0.3, 1),
        border-color 300ms ease,
        opacity 500ms ease;
    -webkit-tap-highlight-color: transparent;
}

.cta-card-dba191aa::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 3;
    border-radius: inherit;
    pointer-events: none;
    box-shadow:
        0 0 0 1px rgba(255, 255, 255, 0.04) inset,
        0 1px 0 rgba(255, 255, 255, 0.12) inset;
}

.cta-card-dba191aa::after {
    content: "";
    position: absolute;
    inset: -1px;
    z-index: 2;
    border-radius: inherit;
    pointer-events: none;
    background: radial-gradient(
        520px circle at var(--cta-pointer-x) var(--cta-pointer-y),
        var(--cta-card-accent) 0,
        transparent 42%
    );
    opacity: 0;
    mix-blend-mode: soft-light;
    transition: opacity 300ms ease;
}

.cta-span-2-dba191aa {
    grid-column: span 2;
}

.cta-span-full-dba191aa {
    grid-column: 1 / -1;
}

.cta-grid-dba191aa.is-single-column-dba191aa .cta-span-2-dba191aa,
.cta-grid-dba191aa.is-single-column-dba191aa .cta-span-full-dba191aa {
    grid-column: span 1 !important;
}

/*
 * Five-card presets
 * -----------------
 * Balanced: three equal cards on row one, two equal cards on row two.
 * Featured: one large anchor card and four supporting cards.
 * Both presets fill every grid cell and remove the orphan-card gap.
 */
.cta-grid-dba191aa.cta-layout-balanced-five-dba191aa,
.cta-grid-dba191aa.cta-layout-featured-five-dba191aa {
    grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
    grid-auto-flow: row;
    align-items: stretch;
}

.cta-grid-dba191aa.cta-layout-balanced-five-dba191aa {
    grid-template-rows: repeat(2, minmax(var(--cta-bento-row-height, 360px), auto));
}

.cta-grid-dba191aa.cta-layout-featured-five-dba191aa {
    grid-template-rows: repeat(2, minmax(clamp(250px, var(--cta-bento-row-height, 360px), 340px), auto));
}

.cta-grid-dba191aa.cta-layout-balanced-five-dba191aa > .cta-card-dba191aa,
.cta-grid-dba191aa.cta-layout-featured-five-dba191aa > .cta-card-dba191aa {
    width: 100%;
    height: 100%;
    min-height: 0 !important;
}

/* Balanced 3 + 2 composition. */
.cta-grid-dba191aa.cta-layout-balanced-five-dba191aa > .cta-card-dba191aa:nth-child(1) {
    grid-column: 1 / span 4 !important;
    grid-row: 1 !important;
}

.cta-grid-dba191aa.cta-layout-balanced-five-dba191aa > .cta-card-dba191aa:nth-child(2) {
    grid-column: 5 / span 4 !important;
    grid-row: 1 !important;
}

.cta-grid-dba191aa.cta-layout-balanced-five-dba191aa > .cta-card-dba191aa:nth-child(3) {
    grid-column: 9 / span 4 !important;
    grid-row: 1 !important;
}

.cta-grid-dba191aa.cta-layout-balanced-five-dba191aa > .cta-card-dba191aa:nth-child(4) {
    grid-column: 1 / span 6 !important;
    grid-row: 2 !important;
}

.cta-grid-dba191aa.cta-layout-balanced-five-dba191aa > .cta-card-dba191aa:nth-child(5) {
    grid-column: 7 / span 6 !important;
    grid-row: 2 !important;
}

/* Optional 1 + 4 featured bento composition. */
.cta-grid-dba191aa.cta-layout-featured-five-dba191aa > .cta-card-dba191aa:nth-child(1) {
    grid-column: 1 / span 6 !important;
    grid-row: 1 / span 2 !important;
}

.cta-grid-dba191aa.cta-layout-featured-five-dba191aa > .cta-card-dba191aa:nth-child(2) {
    grid-column: 7 / span 3 !important;
    grid-row: 1 !important;
}

.cta-grid-dba191aa.cta-layout-featured-five-dba191aa > .cta-card-dba191aa:nth-child(3) {
    grid-column: 10 / span 3 !important;
    grid-row: 1 !important;
}

.cta-grid-dba191aa.cta-layout-featured-five-dba191aa > .cta-card-dba191aa:nth-child(4) {
    grid-column: 7 / span 3 !important;
    grid-row: 2 !important;
}

.cta-grid-dba191aa.cta-layout-featured-five-dba191aa > .cta-card-dba191aa:nth-child(5) {
    grid-column: 10 / span 3 !important;
    grid-row: 2 !important;
}

/* Narrow cards stack their copy and action to avoid cramped text. */
.cta-grid-dba191aa.cta-layout-balanced-five-dba191aa > .cta-card-dba191aa:nth-child(-n + 3) .cta-bottom-row-dba191aa,
.cta-grid-dba191aa.cta-layout-featured-five-dba191aa > .cta-card-dba191aa:not(:first-child) .cta-bottom-row-dba191aa {
    align-items: flex-start;
    flex-direction: column;
    gap: 18px;
}

.cta-grid-dba191aa.cta-layout-balanced-five-dba191aa > .cta-card-dba191aa:nth-child(-n + 3) .cta-copy-dba191aa,
.cta-grid-dba191aa.cta-layout-featured-five-dba191aa > .cta-card-dba191aa:not(:first-child) .cta-copy-dba191aa,
.cta-grid-dba191aa.cta-layout-balanced-five-dba191aa > .cta-card-dba191aa:nth-child(-n + 3) .cta-action-dba191aa,
.cta-grid-dba191aa.cta-layout-featured-five-dba191aa > .cta-card-dba191aa:not(:first-child) .cta-action-dba191aa {
    max-width: 100%;
}

.cta-card-bg-dba191aa {
    position: absolute;
    inset: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    min-width: 100%;
    min-height: 100%;
    overflow: hidden;
    border-radius: inherit;
    background: var(--cta-card-surface);
    pointer-events: none;
}

.cta-media-dba191aa,
.cta-youtube-dba191aa,
.cta-youtube-dba191aa iframe {
    position: absolute;
    inset: 0;
}

/* Force every image and self-hosted video to cover the complete card. */
.cta-card-bg-dba191aa > img.cta-media-dba191aa,
.cta-card-bg-dba191aa > video.cta-media-dba191aa,
.cta-media-dba191aa {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-width: 100% !important;
    min-height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center center;
    transform: scale(1.025) translate3d(var(--cta-media-x), var(--cta-media-y), 0);
    transition:
        transform 900ms cubic-bezier(0.16, 1, 0.3, 1),
        filter 500ms ease,
        opacity 500ms ease;
    will-change: transform;
}

.cta-youtube-dba191aa {
    width: 100%;
    height: 100%;
    overflow: hidden;
}

/* Maintain a 16:9 YouTube frame and crop it like background-size: cover. */
.cta-youtube-dba191aa iframe {
    top: 50%;
    right: auto;
    bottom: auto;
    left: 50%;
    width: auto;
    height: auto;
    min-width: 100%;
    min-height: 100%;
    aspect-ratio: 16 / 9;
    border: 0;
    transform: translate(-50%, -50%) scale(1.02);
    pointer-events: none;
}

.cta-video-poster-dba191aa {
    z-index: 1;
}

.cta-card-bg-dba191aa.is-video-active-dba191aa .cta-video-poster-dba191aa {
    opacity: 0;
}

.cta-media-wash-dba191aa {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    background:
        linear-gradient(180deg, rgba(4, 10, 10, 0.08) 0%, rgba(4, 10, 10, 0.12) 34%, var(--cta-overlay) 100%),
        linear-gradient(120deg, rgba(2, 7, 7, 0.18), transparent 55%);
}

.cta-card-content-dba191aa {
    position: relative;
    z-index: 1;
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    justify-content: flex-end;
    width: 100%;
    min-width: 0;
    min-height: 100%;
    padding: 28px;
    transform: translateZ(24px);
}

.cta-pointer-glow-dba191aa {
    position: absolute;
    top: -120px;
    right: -100px;
    width: 280px;
    height: 280px;
    border-radius: 50%;
    pointer-events: none;
    background: var(--cta-card-accent);
    filter: blur(90px);
    opacity: 0.08;
    transition: opacity 350ms ease, transform 700ms cubic-bezier(0.16, 1, 0.3, 1);
}

.cta-top-dba191aa {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    margin-bottom: auto;
}

.cta-content-center-dba191aa .cta-card-content-dba191aa {
    justify-content: center;
}

.cta-content-center-dba191aa .cta-top-dba191aa {
    margin-bottom: 22px;
}

.cta-tag-dba191aa {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    max-width: 100%;
    padding: 7px 13px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.17);
    border-radius: 999px;
    color: var(--cta-tag-text);
    background: var(--cta-tag-bg);
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.12) inset,
        0 8px 24px rgba(2, 9, 8, 0.08);
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.08em;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
    backdrop-filter: blur(14px) saturate(135%);
    -webkit-backdrop-filter: blur(14px) saturate(135%);
}

.cta-bottom-row-dba191aa {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 22px;
    width: 100%;
    min-width: 0;
}

.cta-copy-dba191aa {
    flex: 1 1 auto;
    min-width: 0;
    max-width: 82%;
}

.cta-heading-dba191aa {
    margin: 0;
    color: var(--cta-heading);
    font-family: inherit;
    font-size: clamp(1.65rem, 2.65vw, 3.2rem);
    font-weight: 680;
    line-height: 1.02;
    letter-spacing: -0.035em;
    text-wrap: balance;
    text-shadow: 0 2px 18px rgba(1, 7, 6, 0.16);
}

.cta-card-dba191aa:not(.cta-span-2-dba191aa):not(.cta-span-full-dba191aa) .cta-heading-dba191aa {
    font-size: clamp(1.45rem, 2vw, 2.25rem);
    line-height: 1.08;
}

.cta-desc-dba191aa {
    max-width: 720px;
    margin: 13px 0 0;
    color: var(--cta-description);
    font-family: inherit;
    font-size: clamp(0.92rem, 0.3vw + 0.86rem, 1.05rem);
    font-weight: 440;
    line-height: 1.55;
    text-wrap: pretty;
}

.cta-action-dba191aa {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    max-width: min(48%, 260px);
    padding: 6px 7px 6px 17px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 999px;
    color: var(--cta-action-text);
    background: var(--cta-action-bg);
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.14) inset,
        0 12px 30px rgba(2, 8, 7, 0.12);
    transition:
        color 320ms ease,
        background-color 320ms ease,
        border-color 320ms ease,
        transform 420ms cubic-bezier(0.16, 1, 0.3, 1);
    backdrop-filter: blur(14px) saturate(145%);
    -webkit-backdrop-filter: blur(14px) saturate(145%);
}

.cta-action-dba191aa.is-icon-only-dba191aa {
    width: 50px;
    padding: 6px;
}

.cta-action-label-dba191aa {
    min-width: 0;
    overflow: hidden;
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: -0.01em;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cta-action-icon-dba191aa {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    margin-left: 10px;
    border-radius: 50%;
    color: currentColor;
    background: rgba(255, 255, 255, 0.12);
    transition:
        background-color 320ms ease,
        transform 520ms cubic-bezier(0.16, 1, 0.3, 1);
}

.is-icon-only-dba191aa .cta-action-icon-dba191aa {
    margin-left: 0;
}

.cta-action-icon-dba191aa svg {
    display: block;
    width: 18px;
    height: 18px;
}

.cta-motion-enabled-dba191aa.is-js-dba191aa .cta-card-dba191aa {
    opacity: 0;
    transform: perspective(1200px) translate3d(0, 18px, 0);
}

.cta-motion-enabled-dba191aa.is-js-dba191aa .cta-card-dba191aa.is-visible-dba191aa {
    opacity: 1;
    transform: perspective(1200px) translate3d(0, 0, 0);
    transition-delay: calc(var(--cta-card-index, 0) * 55ms);
}

@media (hover: hover) and (pointer: fine) {
    .cta-motion-enabled-dba191aa .cta-card-dba191aa:hover {
        z-index: 4;
        border-color: rgba(255, 255, 255, 0.28);
        box-shadow:
            0 1px 0 rgba(255, 255, 255, 0.12) inset,
            0 32px 70px rgba(5, 20, 17, 0.25),
            0 8px 24px rgba(5, 20, 17, 0.12);
        transform:
            perspective(1200px)
            translate3d(0, -7px, 0)
            rotateX(var(--cta-tilt-x))
            rotateY(var(--cta-tilt-y));
    }

    .cta-motion-enabled-dba191aa .cta-card-dba191aa:hover::after {
        opacity: 0.16;
    }

    .cta-motion-enabled-dba191aa .cta-card-dba191aa:hover .cta-media-dba191aa {
        transform: scale(1.085) translate3d(var(--cta-media-x), var(--cta-media-y), 0);
        filter: saturate(1.04) contrast(1.02);
    }

    .cta-motion-enabled-dba191aa .cta-card-dba191aa:hover .cta-pointer-glow-dba191aa {
        opacity: 0.16;
        transform: scale(1.12);
    }

    .cta-motion-enabled-dba191aa .cta-card-dba191aa:hover .cta-action-dba191aa {
        border-color: transparent;
        color: var(--cta-action-hover-text);
        background: var(--cta-action-hover-bg);
        transform: translate3d(0, -2px, 0);
    }

    .cta-motion-enabled-dba191aa .cta-card-dba191aa:hover .cta-action-icon-dba191aa {
        background: rgba(0, 0, 0, 0.09);
        transform: rotate(45deg);
    }
}

.cta-card-dba191aa:focus-visible {
    outline: 3px solid var(--cta-card-accent);
    outline-offset: 4px;
}

.cta-card-dba191aa:focus-visible .cta-action-dba191aa {
    border-color: transparent;
    color: var(--cta-action-hover-text);
    background: var(--cta-action-hover-bg);
}

@media (max-width: 1024px) {
    .cta-heading-dba191aa {
        font-size: clamp(1.65rem, 4vw, 2.65rem);
    }

    .cta-card-dba191aa:not(.cta-span-2-dba191aa):not(.cta-span-full-dba191aa) .cta-heading-dba191aa {
        font-size: clamp(1.4rem, 3vw, 2rem);
    }

    .cta-copy-dba191aa {
        max-width: 88%;
    }
}

@media (max-width: 900px) {
    .cta-grid-dba191aa.cta-layout-balanced-five-dba191aa,
    .cta-grid-dba191aa.cta-layout-featured-five-dba191aa {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        grid-template-rows: none;
        grid-auto-rows: minmax(var(--cta-bento-row-height, 330px), auto);
    }

    .cta-grid-dba191aa.cta-layout-balanced-five-dba191aa > .cta-card-dba191aa,
    .cta-grid-dba191aa.cta-layout-featured-five-dba191aa > .cta-card-dba191aa {
        grid-column: auto !important;
        grid-row: auto !important;
        min-height: 0 !important;
    }

    .cta-grid-dba191aa.cta-layout-balanced-five-dba191aa > .cta-card-dba191aa:first-child,
    .cta-grid-dba191aa.cta-layout-featured-five-dba191aa > .cta-card-dba191aa:first-child {
        grid-column: 1 / -1 !important;
    }

    .cta-grid-dba191aa.cta-layout-balanced-five-dba191aa > .cta-card-dba191aa .cta-bottom-row-dba191aa,
    .cta-grid-dba191aa.cta-layout-featured-five-dba191aa > .cta-card-dba191aa .cta-bottom-row-dba191aa {
        align-items: flex-start;
        flex-direction: column;
        gap: 18px;
    }

    .cta-grid-dba191aa.cta-layout-balanced-five-dba191aa > .cta-card-dba191aa .cta-copy-dba191aa,
    .cta-grid-dba191aa.cta-layout-featured-five-dba191aa > .cta-card-dba191aa .cta-copy-dba191aa,
    .cta-grid-dba191aa.cta-layout-balanced-five-dba191aa > .cta-card-dba191aa .cta-action-dba191aa,
    .cta-grid-dba191aa.cta-layout-featured-five-dba191aa > .cta-card-dba191aa .cta-action-dba191aa {
        max-width: 100%;
    }
}

@media (max-width: 767px) {
    .cta-grid-dba191aa {
        grid-auto-flow: row;
    }

    .cta-grid-dba191aa.cta-layout-balanced-five-dba191aa,
    .cta-grid-dba191aa.cta-layout-featured-five-dba191aa {
        grid-template-columns: 1fr !important;
        grid-template-rows: none;
        grid-auto-rows: auto;
    }

    .cta-grid-dba191aa.cta-layout-balanced-five-dba191aa > .cta-card-dba191aa,
    .cta-grid-dba191aa.cta-layout-featured-five-dba191aa > .cta-card-dba191aa,
    .cta-grid-dba191aa.cta-layout-balanced-five-dba191aa > .cta-card-dba191aa:first-child,
    .cta-grid-dba191aa.cta-layout-featured-five-dba191aa > .cta-card-dba191aa:first-child {
        grid-column: 1 !important;
        grid-row: auto !important;
        min-height: var(--cta-bento-row-height, 310px) !important;
    }

    .cta-card-dba191aa {
        min-height: 320px;
        border-radius: 22px;
    }

    .cta-card-content-dba191aa {
        padding: 22px;
        transform: none;
    }

    .cta-bottom-row-dba191aa {
        align-items: flex-end;
        gap: 14px;
    }

    .cta-copy-dba191aa {
        max-width: 100%;
    }

    .cta-heading-dba191aa,
    .cta-card-dba191aa:not(.cta-span-2-dba191aa):not(.cta-span-full-dba191aa) .cta-heading-dba191aa {
        font-size: clamp(1.55rem, 7vw, 2.15rem);
        line-height: 1.06;
    }

    .cta-desc-dba191aa {
        margin-top: 10px;
        font-size: 0.94rem;
        line-height: 1.5;
    }

    .cta-action-dba191aa {
        min-height: 46px;
        max-width: 46%;
        padding-left: 14px;
    }

    .cta-action-icon-dba191aa {
        width: 34px;
        height: 34px;
        margin-left: 8px;
    }
}

@media (max-width: 520px) {
    .cta-bottom-row-dba191aa {
        align-items: flex-start;
        flex-direction: column;
    }

    .cta-action-dba191aa {
        align-self: flex-start;
        max-width: 100%;
    }

    .cta-card-dba191aa {
        min-height: 300px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .cta-grid-dba191aa *,
    .cta-grid-dba191aa *::before,
    .cta-grid-dba191aa *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }

    .cta-card-dba191aa,
    .cta-motion-enabled-dba191aa.is-js-dba191aa .cta-card-dba191aa,
    .cta-motion-enabled-dba191aa.is-js-dba191aa .cta-card-dba191aa.is-visible-dba191aa {
        opacity: 1;
        transform: none;
    }

    .cta-media-dba191aa {
        transform: scale(1.025);
    }
}

/* ========================================================================== 
 * v2.2.0 — Container-aware responsive engine
 * The widget may be narrow even when the browser viewport is wide. JavaScript
 * measures the grid itself and applies the classes below, while viewport media
 * queries remain as a no-JS fallback.
 * ========================================================================== */

.elementor-widget-cta_grid_dba191aa,
.elementor-widget-cta_grid_dba191aa > .elementor-widget-container {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.cta-grid-dba191aa {
    container-type: inline-size;
    overflow: visible;
}

.cta-grid-dba191aa > .cta-card-dba191aa {
    max-width: 100%;
}

/* Prevent long headings from forcing a card or grid track wider. */
.cta-heading-dba191aa,
.cta-desc-dba191aa,
.cta-action-label-dba191aa,
.cta-tag-dba191aa {
    min-width: 0;
    overflow-wrap: break-word;
    word-break: normal;
    hyphens: auto;
}

/* --------------------------------------------------------------------------
 * Wide widget: balanced desktop bento (3 + 2)
 * -------------------------------------------------------------------------- */
.cta-grid-dba191aa.is-cta-wide-dba191aa.cta-layout-balanced-five-dba191aa,
.cta-grid-dba191aa.is-cta-wide-dba191aa.cta-layout-featured-five-dba191aa {
    grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
    grid-template-rows: none !important;
    grid-auto-flow: row !important;
    grid-auto-rows: auto !important;
}

.cta-grid-dba191aa.is-cta-wide-dba191aa.cta-layout-balanced-five-dba191aa > .cta-card-dba191aa {
    height: clamp(320px, var(--cta-bento-row-height, 360px), 460px) !important;
    min-height: 320px !important;
}

/* Featured desktop: two compact rows beside one anchor card. */
.cta-grid-dba191aa.is-cta-wide-dba191aa.cta-layout-featured-five-dba191aa {
    --cta-featured-small-height: clamp(250px, var(--cta-bento-row-height, 360px), 340px);
}

.cta-grid-dba191aa.is-cta-wide-dba191aa.cta-layout-featured-five-dba191aa > .cta-card-dba191aa:not(:first-child) {
    height: var(--cta-featured-small-height) !important;
    min-height: 250px !important;
}

.cta-grid-dba191aa.is-cta-wide-dba191aa.cta-layout-featured-five-dba191aa > .cta-card-dba191aa:first-child {
    height: auto !important;
    min-height: calc(var(--cta-featured-small-height) + var(--cta-featured-small-height) + var(--cta-live-gap, 18px)) !important;
}

/* --------------------------------------------------------------------------
 * Medium widget: two columns, fifth card fills the final row.
 * This keeps cards useful on tablets without creating narrow portrait towers.
 * -------------------------------------------------------------------------- */
.cta-grid-dba191aa.is-cta-medium-dba191aa.cta-layout-balanced-five-dba191aa,
.cta-grid-dba191aa.is-cta-medium-dba191aa.cta-layout-featured-five-dba191aa {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: none !important;
    grid-auto-flow: row !important;
    grid-auto-rows: auto !important;
}

.cta-grid-dba191aa.is-cta-medium-dba191aa.cta-layout-balanced-five-dba191aa > .cta-card-dba191aa,
.cta-grid-dba191aa.is-cta-medium-dba191aa.cta-layout-featured-five-dba191aa > .cta-card-dba191aa {
    grid-column: auto !important;
    grid-row: auto !important;
    width: 100% !important;
    height: clamp(310px, var(--cta-bento-row-height, 340px), 420px) !important;
    min-height: 310px !important;
}

.cta-grid-dba191aa.is-cta-medium-dba191aa.cta-layout-balanced-five-dba191aa > .cta-card-dba191aa:nth-child(5),
.cta-grid-dba191aa.is-cta-medium-dba191aa.cta-layout-featured-five-dba191aa > .cta-card-dba191aa:first-child {
    grid-column: 1 / -1 !important;
}

.cta-grid-dba191aa.is-cta-medium-dba191aa .cta-bottom-row-dba191aa {
    align-items: flex-start;
    flex-direction: column;
    gap: 14px;
}

.cta-grid-dba191aa.is-cta-medium-dba191aa .cta-copy-dba191aa,
.cta-grid-dba191aa.is-cta-medium-dba191aa .cta-action-dba191aa {
    max-width: 100% !important;
}

.cta-grid-dba191aa.is-cta-medium-dba191aa .cta-card-content-dba191aa {
    padding: clamp(20px, 3.2cqw, 28px) !important;
}

.cta-grid-dba191aa.is-cta-medium-dba191aa .cta-heading-dba191aa,
.cta-grid-dba191aa.is-cta-medium-dba191aa .cta-card-dba191aa:not(.cta-span-2-dba191aa):not(.cta-span-full-dba191aa) .cta-heading-dba191aa {
    font-size: clamp(1.45rem, 3.4cqw, 2.1rem) !important;
    line-height: 1.06;
}

/* --------------------------------------------------------------------------
 * Narrow widget: a real one-column mobile stack based on grid width.
 * -------------------------------------------------------------------------- */
.cta-grid-dba191aa.is-cta-narrow-dba191aa,
.cta-grid-dba191aa.is-cta-narrow-dba191aa.cta-layout-balanced-five-dba191aa,
.cta-grid-dba191aa.is-cta-narrow-dba191aa.cta-layout-featured-five-dba191aa,
.cta-grid-dba191aa.is-cta-narrow-dba191aa.cta-layout-manual-dba191aa {
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: none !important;
    grid-auto-flow: row !important;
    grid-auto-rows: auto !important;
    width: 100% !important;
}

.cta-grid-dba191aa.is-cta-narrow-dba191aa > .cta-card-dba191aa,
.cta-grid-dba191aa.is-cta-narrow-dba191aa > .cta-card-dba191aa:first-child,
.cta-grid-dba191aa.is-cta-narrow-dba191aa > .cta-card-dba191aa:nth-child(n) {
    grid-column: 1 / -1 !important;
    grid-row: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    height: clamp(300px, var(--cta-bento-row-height, 330px), 390px) !important;
    min-height: 300px !important;
}

.cta-grid-dba191aa.is-cta-narrow-dba191aa .cta-card-content-dba191aa {
    min-height: 0;
    padding: clamp(18px, 5cqw, 24px) !important;
    transform: none;
}

.cta-grid-dba191aa.is-cta-narrow-dba191aa .cta-bottom-row-dba191aa {
    align-items: flex-start;
    flex-direction: column;
    gap: 13px;
}

.cta-grid-dba191aa.is-cta-narrow-dba191aa .cta-copy-dba191aa,
.cta-grid-dba191aa.is-cta-narrow-dba191aa .cta-action-dba191aa {
    width: auto;
    max-width: 100% !important;
}

.cta-grid-dba191aa.is-cta-narrow-dba191aa .cta-heading-dba191aa,
.cta-grid-dba191aa.is-cta-narrow-dba191aa .cta-card-dba191aa:not(.cta-span-2-dba191aa):not(.cta-span-full-dba191aa) .cta-heading-dba191aa {
    font-size: clamp(1.45rem, 6.2cqw, 2rem) !important;
    line-height: 1.06;
    letter-spacing: -0.03em;
}

.cta-grid-dba191aa.is-cta-narrow-dba191aa .cta-desc-dba191aa {
    margin-top: 9px;
    font-size: clamp(0.88rem, 3.7cqw, 0.98rem) !important;
    line-height: 1.48;
}

.cta-grid-dba191aa.is-cta-narrow-dba191aa .cta-tag-dba191aa {
    min-height: 31px;
    padding: 6px 11px;
    font-size: 10px;
    letter-spacing: 0.065em;
}

.cta-grid-dba191aa.is-cta-narrow-dba191aa .cta-action-dba191aa {
    min-height: 44px;
    padding: 5px 6px 5px 14px;
}

.cta-grid-dba191aa.is-cta-narrow-dba191aa .cta-action-icon-dba191aa {
    width: 32px;
    height: 32px;
    margin-left: 8px;
}

/* Extra-small phones. */
.cta-grid-dba191aa.is-cta-tiny-dba191aa > .cta-card-dba191aa,
.cta-grid-dba191aa.is-cta-tiny-dba191aa > .cta-card-dba191aa:nth-child(n) {
    height: clamp(285px, var(--cta-bento-row-height, 315px), 350px) !important;
    min-height: 285px !important;
    border-radius: min(22px, 6cqw);
}

.cta-grid-dba191aa.is-cta-tiny-dba191aa .cta-card-content-dba191aa {
    padding: clamp(17px, 5.5cqw, 21px) !important;
}

.cta-grid-dba191aa.is-cta-tiny-dba191aa .cta-heading-dba191aa,
.cta-grid-dba191aa.is-cta-tiny-dba191aa .cta-card-dba191aa:not(.cta-span-2-dba191aa):not(.cta-span-full-dba191aa) .cta-heading-dba191aa {
    font-size: clamp(1.35rem, 7cqw, 1.8rem) !important;
}

/* No-JavaScript / cache fallback based on viewport width. */
@media (max-width: 767px) {
    .cta-grid-dba191aa:not(.is-cta-wide-dba191aa):not(.is-cta-medium-dba191aa) {
        grid-template-columns: minmax(0, 1fr) !important;
        grid-template-rows: none !important;
        grid-auto-rows: auto !important;
    }

    .cta-grid-dba191aa:not(.is-cta-wide-dba191aa):not(.is-cta-medium-dba191aa) > .cta-card-dba191aa:nth-child(n) {
        grid-column: 1 / -1 !important;
        grid-row: auto !important;
        width: 100% !important;
        height: clamp(300px, var(--cta-bento-row-height, 330px), 390px) !important;
        min-height: 300px !important;
    }
}
