/* =====================================================
   Uniprocapital2 — V108 reference-artwork frontend
   Desktop geometry follows the supplied SELL MY HOME image.
   ===================================================== */

.upc2-cards-row,
.upc2-cards-row * {
    box-sizing: border-box;
}

.upc2-cards-row {
    display: flex;
    width: 100%;
    padding: var(--upc2-padding-top, 18px) var(--upc2-padding-side, 25px);
    align-items: flex-start;
    justify-content: center;
    background: #111111;
    isolation: isolate;
}

.upc2-card {
    position: relative;
    width: min(100%, var(--upc2-card-width-desktop, var(--upc2-card-width, 842px)));
    min-width: 0;
    flex: 0 1 var(--upc2-card-width-desktop, var(--upc2-card-width, 842px));
    overflow: hidden;
    border: var(--upc2-card-border-width, 7px) solid var(--upc2-card-border-color, #d4d4d4) !important;
    border-radius: var(--upc2-card-radius, 30px);
    outline: 0;
    background: #000000;
    color: #ffffff;
    cursor: pointer;
    text-decoration: none !important;
    box-shadow: none;
    transform: none;
    -webkit-tap-highlight-color: transparent;
}

.upc2-card:hover,
.upc2-card:focus-visible,
.upc2-card:focus-within {
    border-color: var(--upc2-card-border-hover, var(--upc2-card-border-color, #d4d4d4)) !important;
    background: #000000;
    color: #ffffff;
    transform: none;
    box-shadow: none;
}

.upc2-card:focus-visible {
    outline: 3px solid rgba(255, 255, 255, .72);
    outline-offset: 4px;
}

.upc2-reference-shell {
    width: 100%;
    min-width: 0;
    padding: 34px 52px 24px;
    background: #000000;
}

.upc2-reference-heading {
    width: 100%;
    margin: 0;
    color: var(--upc2-reference-heading-color, #ffffff) !important;
    font-family: var(--upc2-reference-heading-font, "Arial Black", Arial, Helvetica, sans-serif);
    font-size: var(--upc2-reference-heading-size, 58px);
    font-weight: var(--upc2-reference-heading-weight, 800);
    line-height: .98;
    letter-spacing: -.028em;
    text-align: center;
    text-transform: uppercase;
    white-space: normal;
    overflow-wrap: anywhere;
    text-rendering: geometricPrecision;
    transition: color 420ms cubic-bezier(.22, 1, .36, 1), opacity 420ms cubic-bezier(.22, 1, .36, 1);
}

.upc2-reference-heading,
.upc2-reference-heading * {
    color: var(--upc2-reference-heading-color, #ffffff) !important;
}

.upc2-card:hover .upc2-reference-heading,
.upc2-card:focus-visible .upc2-reference-heading {
    color: var(--upc2-reference-heading-hover-color, var(--upc2-reference-heading-color, #ffffff)) !important;
}

.upc2-reference-subheading {
    width: 100%;
    margin: 27px 0 0;
    color: var(--upc2-title-color, #ff7900) !important;
    font-family: var(--upc2-title-font, Arial, sans-serif);
    font-size: var(--upc2-title-size, 28px);
    font-weight: var(--upc2-title-weight, 800);
    line-height: 1.15;
    letter-spacing: .005em;
    text-align: center;
    text-transform: uppercase;
    white-space: normal;
    overflow-wrap: anywhere;
}

.upc2-reference-subheading,
.upc2-reference-subheading * {
    color: var(--upc2-title-color, #ff7900) !important;
}

.upc2-card-subtitle {
    width: 100%;
    margin: 10px 0 0;
    color: var(--upc2-subtitle-color, #ffffff) !important;
    font-family: var(--upc2-subtitle-font, Arial, sans-serif);
    font-size: var(--upc2-subtitle-size, 18px);
    font-weight: var(--upc2-subtitle-weight, 400);
    line-height: var(--upc2-subtitle-line-height, 1.5);
    text-align: center;
}

.upc2-reference-middle {
    display: grid;
    width: 100%;
    min-width: 0;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 24px;
    align-items: center;
    margin-top: 86px;
}

.upc2-reference-media-wrap {
    width: 100%;
    min-width: 0;
}

.upc2-card-media {
    position: relative;
    display: block;
    width: 100%;
    height: var(--upc2-media-height, 271px);
    min-height: 0;
    overflow: hidden;
    border: 0;
    border-radius: var(--upc2-media-radius, 20px);
    background: #000000;
    box-shadow: none;
}

.upc2-card-media--image {
    border: var(--upc2-image-border-width, 0px) solid var(--upc2-image-border-color, #22c55e);
}

.upc2-card-media-image,
.upc2-card-video {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    min-width: 100%;
    min-height: 100%;
    border: 0;
    border-radius: inherit;
    background: #000000;
    object-fit: cover !important;
    object-position: center center;
}

.upc2-card-media--has-hover .upc2-card-media-image {
    transition: opacity var(--upc2-duration, 350ms) ease, visibility var(--upc2-duration, 350ms) ease;
}

.upc2-card-media--has-hover .upc2-card-media-image--normal {
    opacity: 1;
    visibility: visible;
}

.upc2-card-media--has-hover .upc2-card-media-image--hover {
    opacity: 0;
    visibility: hidden;
}

.upc2-card:hover .upc2-card-media--has-hover .upc2-card-media-image--normal,
.upc2-card:focus-visible .upc2-card-media--has-hover .upc2-card-media-image--normal {
    opacity: 0;
    visibility: hidden;
}

.upc2-card:hover .upc2-card-media--has-hover .upc2-card-media-image--hover,
.upc2-card:focus-visible .upc2-card-media--has-hover .upc2-card-media-image--hover {
    opacity: 1;
    visibility: visible;
}

.upc2-reference-copy {
    display: flex;
    width: 100%;
    min-width: 0;
    align-self: stretch;
    align-items: center;
}

.upc2-reference-copy-stack {
    display: flex;
    width: 100%;
    min-width: 0;
    min-height: 100%;
    flex-direction: column;
    align-items: stretch;
    justify-content: center;
    gap: 20px;
}

.upc2-reference-text-wrap {
    display: flex;
    width: 100%;
    min-width: 0;
    align-items: flex-start;
    justify-content: flex-start;
}

.upc2-reference-text {
    width: 100%;
    min-width: 0;
    margin: 0;
    color: var(--upc2-subtitle-color, #ffffff) !important;
    font-family: var(--upc2-subtitle-font, Arial, sans-serif);
    font-size: var(--upc2-subtitle-size, 18px);
    font-weight: var(--upc2-subtitle-weight, 400);
    line-height: var(--upc2-subtitle-line-height, 1.5);
    letter-spacing: 0;
    text-align: left;
    white-space: normal;
    overflow-wrap: anywhere;
}

.upc2-reference-text,
.upc2-reference-text * {
    color: inherit !important;
}

.upc2-check-offer-list,
.upc2-card-benefits {
    display: grid;
    width: 100%;
    min-width: 0;
    gap: 11px;
    margin: 0;
    text-align: left;
}

.upc2-check-offer-item,
.upc2-card-benefit {
    display: grid;
    width: 100%;
    min-width: 0;
    min-height: 34px;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 14px;
    align-items: center;
    color: var(--upc2-benefit-color, #ffffff) !important;
    font-family: var(--upc2-subtitle-font, Arial, sans-serif);
    font-size: var(--upc2-subtitle-size, 18px);
    font-weight: var(--upc2-subtitle-weight, 400);
    line-height: 1.25;
    text-align: left;
    opacity: .86;
    transform: translate3d(0, 0, 0) scale(1);
    transform-origin: left center;
    will-change: color, opacity, transform;
    transition:
        color var(--upc2-benefit-speed, 650ms) cubic-bezier(.22, 1, .36, 1),
        opacity var(--upc2-benefit-speed, 650ms) cubic-bezier(.22, 1, .36, 1),
        transform var(--upc2-benefit-speed, 650ms) cubic-bezier(.22, 1, .36, 1),
        filter var(--upc2-benefit-speed, 650ms) cubic-bezier(.22, 1, .36, 1);
}

.upc2-card-benefit--no-icon {
    grid-template-columns: minmax(0, 1fr);
}

.upc2-check-offer-text,
.upc2-check-offer-text *,
.upc2-card-benefit__text,
.upc2-card-benefit__text * {
    min-width: 0;
    color: inherit !important;
    opacity: .94;
    overflow-wrap: anywhere;
    transform: translate3d(0, 0, 0);
    transition:
        color var(--upc2-benefit-speed, 650ms) cubic-bezier(.22, 1, .36, 1),
        opacity var(--upc2-benefit-speed, 650ms) cubic-bezier(.22, 1, .36, 1),
        transform var(--upc2-benefit-speed, 650ms) cubic-bezier(.22, 1, .36, 1),
        text-shadow var(--upc2-benefit-speed, 650ms) cubic-bezier(.22, 1, .36, 1);
}

.upc2-card-benefit.is-active {
    color: var(--upc2-benefit-active-color, #22c55e) !important;
    font-weight: 700;
    opacity: 1;
    transform: translate3d(3px, 0, 0) scale(var(--upc2-benefit-scale, 1.01));
    filter: saturate(1.08);
}

.upc2-card-benefit.is-active .upc2-card-benefit__text {
    opacity: 1;
    transform: translate3d(2px, 0, 0);
    text-shadow: 0 0 18px color-mix(in srgb, var(--upc2-benefit-active-color, #22c55e) 18%, transparent);
}

.upc2-benefit-icon {
    display: grid;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    place-items: center;
    border: 1px solid color-mix(in srgb, var(--upc2-benefit-icon-color, #22c55e) 18%, transparent);
    border-radius: 6px;
    background: var(--upc2-benefit-icon-bg, #f2fff6);
    color: var(--upc2-benefit-icon-color, #22c55e) !important;
    box-shadow: 0 1px 0 rgba(255, 255, 255, .08);
    transform: translateZ(0) scale(1);
    will-change: transform, background-color, color, box-shadow;
    transition:
        background-color var(--upc2-benefit-speed, 650ms) cubic-bezier(.22, 1, .36, 1),
        color var(--upc2-benefit-speed, 650ms) cubic-bezier(.22, 1, .36, 1),
        border-color var(--upc2-benefit-speed, 650ms) cubic-bezier(.22, 1, .36, 1),
        box-shadow var(--upc2-benefit-speed, 650ms) cubic-bezier(.22, 1, .36, 1),
        transform var(--upc2-benefit-speed, 650ms) cubic-bezier(.22, 1, .36, 1);
}

.upc2-card-benefit.is-active .upc2-benefit-icon {
    background: var(--upc2-benefit-icon-active-bg, #22c55e);
    color: var(--upc2-benefit-icon-active-color, #ffffff) !important;
    border-color: var(--upc2-benefit-icon-active-bg, #22c55e);
    box-shadow:
        0 0 0 3px color-mix(in srgb, var(--upc2-benefit-icon-active-bg, #22c55e) 12%, transparent),
        0 8px 20px color-mix(in srgb, var(--upc2-benefit-icon-active-bg, #22c55e) 18%, transparent);
    transform: translateZ(0) scale(1.08);
}

.upc2-benefit-icon svg {
    display: block;
    width: 23px;
    height: 23px;
    overflow: visible;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.15;
    stroke-linecap: round;
    stroke-linejoin: round;
    transform-origin: center;
    transition:
        transform var(--upc2-benefit-speed, 650ms) cubic-bezier(.22, 1, .36, 1),
        opacity var(--upc2-benefit-speed, 650ms) ease;
}

.upc2-card-benefit.is-active .upc2-benefit-icon svg {
    transform: scale(1.06);
}

.upc2-benefit-icon .upc2-check-icon__bold { stroke-width: 3.4; }
.upc2-benefit-icon .upc2-check-icon__thin { stroke-width: 1.35; }

.upc2-reference-brand {
    display: flex;
    width: 100%;
    min-width: 0;
    margin-top: 39px;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
}

.upc2-card-logo {
    position: relative;
    display: grid;
    width: min(100%, var(--upc2-logo-area-width, 367px));
    min-width: 0;
    min-height: 0;
    margin: 0 auto;
    place-items: center;
    background: transparent;
}

.upc2-logo-image {
    display: block;
    width: auto;
    max-width: 100%;
    height: var(--upc2-logo-icon-size, 123px);
    max-height: none;
    object-fit: contain;
    object-position: center center;
}

.upc2-card-logo--has-hover .upc2-logo-image {
    grid-area: 1 / 1;
    transition: opacity var(--upc2-duration, 350ms) ease, visibility var(--upc2-duration, 350ms) ease;
}

.upc2-card-logo--has-hover .upc2-logo-image--normal {
    opacity: 1;
    visibility: visible;
}

.upc2-card-logo--has-hover .upc2-logo-image--hover {
    opacity: 0;
    visibility: hidden;
}

.upc2-card:hover .upc2-card-logo--has-hover .upc2-logo-image--normal,
.upc2-card:focus-visible .upc2-card-logo--has-hover .upc2-logo-image--normal {
    opacity: 0;
    visibility: hidden;
}

.upc2-card:hover .upc2-card-logo--has-hover .upc2-logo-image--hover,
.upc2-card:focus-visible .upc2-card-logo--has-hover .upc2-logo-image--hover {
    opacity: 1;
    visibility: visible;
}

.upc2-cta-btn {
    position: relative;
    z-index: 3;
    display: inline-flex;
    width: auto;
    min-width: 0;
    min-height: 44px;
    height: 44px;
    margin: 20px auto 0;
    padding: 0 12px;
    align-items: center;
    justify-content: center;
    gap: 16px;
    border: 0 !important;
    border-radius: 0;
    outline: 0;
    background: transparent !important;
    color: var(--upc2-cta-text, #4dfc50) !important;
    font-family: var(--upc2-title-font, Arial, sans-serif);
    font-size: var(--upc2-cta-font-size, 23px);
    font-weight: var(--upc2-cta-font-weight, 600);
    line-height: 1;
    white-space: nowrap;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    box-shadow: none !important;
    transform: none !important;
}

.upc2-cta-btn:hover,
.upc2-cta-btn:focus-visible,
.upc2-card:hover .upc2-cta-btn,
.upc2-card:focus-visible .upc2-cta-btn {
    background: transparent !important;
    color: var(--upc2-cta-text-hover, var(--upc2-cta-text, #4dfc50)) !important;
    transform: none !important;
}

.upc2-cta-btn:focus-visible {
    outline: 2px solid rgba(255, 255, 255, .72);
    outline-offset: 3px;
}

.upc2-cta-icon {
    display: grid;
    width: 26px;
    height: 26px;
    flex: 0 0 26px;
    place-items: center;
    color: var(--upc2-arrow-icon, #ffffff);
}

.upc2-cta-icon svg {
    display: block;
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.upc2-cta-text {
    color: inherit !important;
}

/* Old layout-only elements are not emitted in V88, but keep these harmless
   resets so theme CSS cannot resurrect them through generic selectors. */
.upc2-arrow-btn,
.upc2-card-media-badge,
.upc2-card-footer,
.upc2-card-info,
.upc2-card-content-layout,
.upc2-card-benefit-panel,
.upc2-card-brand-panel {
    box-shadow: none;
}

@media (max-width: 1024px) {
    .upc2-cards-row {
        padding: 18px;
    }

    .upc2-card {
        width: min(100%, var(--upc2-card-width-tablet, 680px));
        flex-basis: var(--upc2-card-width-tablet, 680px);
        border-width: min(var(--upc2-card-border-width, 7px), 6px) !important;
        border-radius: min(var(--upc2-card-radius, 30px), 26px);
    }

    .upc2-reference-shell {
        padding: 34px 34px 30px;
    }

    .upc2-reference-heading {
        font-size: var(--upc2-reference-heading-size-tablet, 42px);
    }

    .upc2-reference-subheading {
        margin-top: 22px;
        font-size: var(--upc2-title-size-tablet, 22px);
    }

    .upc2-card-subtitle {
        font-size: var(--upc2-subtitle-size-tablet, 17px);
    }

    .upc2-reference-middle {
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
        margin-top: 42px;
    }

    .upc2-card-media {
        height: var(--upc2-media-height-tablet, 470px);
        border-radius: min(var(--upc2-media-radius, 20px), 18px);
    }

    .upc2-reference-copy {
        margin-top: 28px;
        align-self: auto;
        align-items: flex-start;
    }

    .upc2-reference-copy-stack {
        min-height: 0;
        gap: 18px;
    }

    .upc2-reference-text-wrap {
        align-items: flex-start;
    }

    .upc2-reference-text {
        font-size: var(--upc2-subtitle-size-tablet, 17px);
    }

    .upc2-check-offer-item,
    .upc2-card-benefit {
        font-size: var(--upc2-subtitle-size-tablet, 17px);
    }

    .upc2-reference-brand {
        margin-top: 34px;
    }

    .upc2-card-logo {
        width: min(100%, 340px);
    }


    .upc2-cta-btn {
        margin-top: 18px;
        font-size: min(var(--upc2-cta-font-size, 23px), 22px);
    }
}

@media (max-width: 640px) {
    .upc2-cards-row {
        padding: 12px;
    }

    .upc2-card {
        width: min(100%, var(--upc2-card-width-mobile, 380px));
        flex-basis: var(--upc2-card-width-mobile, 380px);
        border-width: min(var(--upc2-card-border-width, 7px), 4px) !important;
        border-radius: min(var(--upc2-card-radius, 30px), 20px);
    }

    .upc2-reference-shell {
        padding: 26px 18px 24px;
    }

    .upc2-reference-heading {
        font-size: var(--upc2-reference-heading-size-mobile, 34px);
        line-height: 1.02;
    }

    .upc2-reference-subheading {
        margin-top: 18px;
        font-size: var(--upc2-title-size-mobile, 18px);
        line-height: 1.2;
    }

    .upc2-card-subtitle {
        margin-top: 8px;
        font-size: var(--upc2-subtitle-size-mobile, 15px);
    }

    .upc2-reference-middle {
        margin-top: 30px;
    }

    .upc2-card-media {
        height: var(--upc2-media-height-mobile, 260px);
        border-radius: min(var(--upc2-media-radius, 20px), 15px);
    }

    .upc2-reference-copy {
        margin-top: 24px;
    }

    .upc2-reference-text {
        font-size: var(--upc2-subtitle-size-mobile, 15px);
        line-height: var(--upc2-subtitle-line-height, 1.5);
    }

    .upc2-reference-copy-stack {
        gap: 16px;
    }

    .upc2-check-offer-list {
        gap: 9px;
    }

    .upc2-check-offer-item,
    .upc2-card-benefit {
        min-height: 30px;
        grid-template-columns: 30px minmax(0, 1fr);
        gap: 10px;
        font-size: var(--upc2-subtitle-size-mobile, 15px);
    }

    .upc2-benefit-icon {
        width: 30px;
        height: 30px;
        flex-basis: 30px;
        border-radius: 6px;
    }

    .upc2-benefit-icon svg {
        width: 20px;
        height: 20px;
    }

    .upc2-reference-brand {
        margin-top: 28px;
    }

    .upc2-card-logo {
        width: min(100%, 285px);
    }

    .upc2-cta-btn {
        min-height: 42px;
        height: 42px;
        margin-top: 14px;
        gap: 12px;
        padding: 0 8px;
        font-size: min(var(--upc2-cta-font-size, 23px), 19px);
    }

    .upc2-cta-icon {
        width: 23px;
        height: 23px;
        flex-basis: 23px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .upc2-card,
    .upc2-card *,
    .upc2-card::before,
    .upc2-card::after {
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.001ms !important;
    }
}

/* Ninja Forms card/modal integration (v9.8.0). */
.upc2-card--ninja-trigger {
    cursor: pointer;
}
.upc2-card--ninja-trigger:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--upc2-arrow-icon, #ff3b30) 70%, #fff);
    outline-offset: 4px;
}
.upc2-card--ninja-trigger:focus-within {
}
.upc2-arrow-btn,
.upc2-cta-btn {
    position: relative;
    z-index: 3;
    border: 0;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
}
.upc2-arrow-btn {
    padding: 0;
    color: inherit;
}
.upc2-arrow-btn:focus-visible,
.upc2-cta-btn:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--upc2-arrow-icon, #ff3b30) 65%, #fff);
    outline-offset: -4px;
}

html.upc2-ninja-modal-open,
html.upc2-ninja-modal-open body {
    overflow: hidden !important;
}
.upc2-ninja-modal[hidden] {
    display: none !important;
}
.upc2-ninja-modal {
    position: fixed;
    inset: 0;
    z-index: 2147483000;
    display: grid;
    place-items: center;
    padding: 24px;
    opacity: 0;
    visibility: hidden;
    transition: opacity 180ms ease, visibility 180ms ease;
}
.upc2-ninja-modal.is-open {
    opacity: 1;
    visibility: visible;
}
.upc2-ninja-modal__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .72);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
}
.upc2-ninja-modal__dialog {
    position: relative;
    z-index: 1;
    width: min(94vw, 760px);
    max-height: min(90vh, 900px);
    overflow: auto;
    overscroll-behavior: contain;
    padding: 38px 30px 28px;
    border: 1px solid rgba(0, 0, 0, .14);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 30px 90px rgba(0, 0, 0, .34);
    transform: translateY(12px) scale(.985);
    transition: transform 180ms ease;
}
.upc2-ninja-modal.is-open .upc2-ninja-modal__dialog {
    transform: translateY(0) scale(1);
}
.upc2-ninja-modal__close {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 5;
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: #f1f1f1;
    color: #111;
    cursor: pointer;
}
.upc2-ninja-modal__close:hover {
    background: #e4e4e4;
}
.upc2-ninja-modal__close:focus-visible {
    outline: 3px solid #111;
    outline-offset: 2px;
}
.upc2-ninja-modal__close svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
}
.upc2-ninja-modal__content {
    width: 100%;
}
.upc2-ninja-modal__notice {
    margin: 12px 0 0;
    padding: 16px;
    border-radius: 10px;
    background: #fff4e5;
    color: #6a3b00;
    font-weight: 600;
}

@media (max-width: 640px) {
    .upc2-ninja-modal {
        padding: 12px;
    }
    .upc2-ninja-modal__dialog {
        width: 100%;
        max-height: 92vh;
        padding: 34px 18px 20px;
        border-radius: 16px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .upc2-ninja-modal,
    .upc2-ninja-modal__dialog {
        transition-duration: 0.001ms !important;
    }
}

/* Ninja Forms modal visual refinement (v9.8.2).
 * Keeps the form spacious on desktop/tablet/mobile and moves scrolling into
 * the content area so the close control is never clipped by the dialog.
 */
.upc2-ninja-modal {
    padding: clamp(16px, 3vw, 32px);
}
.upc2-ninja-modal__dialog {
    width: min(96vw, 840px);
    max-height: calc(100vh - 32px);
    max-height: calc(100dvh - 32px);
    padding: 0;
    overflow: visible;
    border-radius: 24px;
    background: #fff;
}
.upc2-ninja-modal__content {
    width: 100%;
    max-height: calc(100vh - 32px);
    max-height: calc(100dvh - 32px);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    padding: 68px clamp(30px, 5vw, 48px) 42px;
    border-radius: inherit;
    background: #fff;
    -webkit-overflow-scrolling: touch;
}
.upc2-ninja-modal__close {
    top: 14px;
    right: 14px;
    z-index: 50;
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
    border: 1px solid rgba(17, 17, 17, .10);
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 8px 24px rgba(0, 0, 0, .12);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}
.upc2-ninja-modal__close:hover {
    background: #f5f5f5;
    transform: scale(1.04);
}
.upc2-ninja-modal__close svg {
    width: 19px;
    height: 19px;
    stroke-width: 2.15;
}

/* Ninja Forms: fluid, aligned and comfortably sized fields. */
#upc2-ninja-modal .nf-form-cont,
#upc2-ninja-modal .nf-form-wrap,
#upc2-ninja-modal .nf-form-layout,
#upc2-ninja-modal .nf-form-content {
    width: 100% !important;
    max-width: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
#upc2-ninja-modal .nf-form-content {
    padding: 0 !important;
}
#upc2-ninja-modal .nf-before-form-content,
#upc2-ninja-modal .nf-after-form-content {
    width: 100%;
}
#upc2-ninja-modal .nf-form-fields-required {
    margin: 0 0 24px !important;
    line-height: 1.55 !important;
    color: #666 !important;
}
/* Moved below the Ninja Forms logo by upc2-cards.js. */
#upc2-ninja-modal .nf-form-fields-required.upc2-ninja-required-under-logo {
    display: block !important;
    width: 100% !important;
    margin: 8px auto 4px !important;
    padding: 0 !important;
    color: #81858a !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    line-height: 1.45 !important;
    letter-spacing: .01em !important;
    text-align: center !important;
}
#upc2-ninja-modal .nf-form-fields-required.upc2-ninja-required-under-logo .ninja-forms-req-symbol {
    font-size: inherit !important;
}
#upc2-ninja-modal .nf-row {
    width: auto !important;
    margin-left: -9px !important;
    margin-right: -9px !important;
}
#upc2-ninja-modal .nf-cell {
    min-width: 0 !important;
    padding-left: 9px !important;
    padding-right: 9px !important;
}
#upc2-ninja-modal .nf-field-container {
    width: 100% !important;
    margin-bottom: 23px !important;
}
#upc2-ninja-modal .nf-field-container:last-child {
    margin-bottom: 0 !important;
}
#upc2-ninja-modal .field-wrap,
#upc2-ninja-modal .nf-field,
#upc2-ninja-modal .nf-field-element {
    width: 100% !important;
    min-width: 0 !important;
}
#upc2-ninja-modal .nf-field-label {
    margin-bottom: 9px !important;
}
#upc2-ninja-modal .nf-field-label label {
    display: inline-block !important;
    margin: 0 !important;
    color: #171717 !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1.4 !important;
    letter-spacing: -.01em !important;
}
#upc2-ninja-modal .nf-field-element input:not([type="button"]):not([type="submit"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]),
#upc2-ninja-modal .nf-field-element select,
#upc2-ninja-modal .nf-field-element textarea {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 56px !important;
    margin: 0 !important;
    padding: 14px 16px !important;
    border: 1px solid #d7dbe0 !important;
    border-radius: 12px !important;
    background: #fff !important;
    color: #171717 !important;
    font-size: 16px !important;
    line-height: 1.45 !important;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .025) !important;
    transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease !important;
}
#upc2-ninja-modal .nf-field-element textarea {
    min-height: 138px !important;
    resize: vertical !important;
}
#upc2-ninja-modal .nf-field-element select {
    padding-right: 42px !important;
}
#upc2-ninja-modal .nf-field-element input:not([type="button"]):not([type="submit"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):focus,
#upc2-ninja-modal .nf-field-element select:focus,
#upc2-ninja-modal .nf-field-element textarea:focus {
    outline: none !important;
    border-color: #242424 !important;
    box-shadow: 0 0 0 4px rgba(17, 17, 17, .08) !important;
}
#upc2-ninja-modal .nf-field-element input::placeholder,
#upc2-ninja-modal .nf-field-element textarea::placeholder {
    color: #9a9fa5 !important;
    opacity: 1 !important;
}
#upc2-ninja-modal .checkbox-wrap,
#upc2-ninja-modal .listcheckbox-wrap,
#upc2-ninja-modal .listradio-wrap {
    align-items: flex-start !important;
}
#upc2-ninja-modal .nf-field-element input[type="checkbox"],
#upc2-ninja-modal .nf-field-element input[type="radio"] {
    width: 19px !important;
    height: 19px !important;
    min-width: 19px !important;
    margin-top: 2px !important;
}
#upc2-ninja-modal .nf-error .nf-error-msg,
#upc2-ninja-modal .nf-error-msg,
#upc2-ninja-modal .ninja-forms-req-symbol {
    line-height: 1.45 !important;
}
#upc2-ninja-modal .nf-error.field-wrap .nf-field-element::after {
    right: 12px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
}
/* Give the submit action a deliberate visual break from the final field/option. */
#upc2-ninja-modal .nf-field-container.submit-container,
#upc2-ninja-modal .submit-container {
    margin-top: 36px !important;
}
#upc2-ninja-modal .submit-wrap {
    margin-top: 0 !important;
}

#upc2-ninja-modal .nf-field-element input[type="button"],
#upc2-ninja-modal .nf-field-element input[type="submit"],
#upc2-ninja-modal .nf-field-element button {
    min-height: 54px !important;
    padding: 13px 24px !important;
    border: 1px solid #111 !important;
    border-radius: 12px !important;
    background: #111 !important;
    color: #fff !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    cursor: pointer !important;
    box-shadow: 0 8px 20px rgba(0, 0, 0, .12) !important;
    transition: transform 160ms ease, box-shadow 160ms ease, background-color 160ms ease !important;
}
#upc2-ninja-modal .nf-field-element input[type="button"]:hover,
#upc2-ninja-modal .nf-field-element input[type="submit"]:hover,
#upc2-ninja-modal .nf-field-element button:hover {
    background: #242424 !important;
    transform: translateY(-1px);
    box-shadow: 0 10px 24px rgba(0, 0, 0, .16) !important;
}

@media (max-width: 767px) {
    .upc2-ninja-modal {
        padding: 12px;
        place-items: center;
    }
    .upc2-ninja-modal__dialog {
        width: 100%;
        max-height: calc(100vh - 24px);
        max-height: calc(100dvh - 24px);
        border-radius: 20px;
    }
    .upc2-ninja-modal__content {
        max-height: calc(100vh - 24px);
        max-height: calc(100dvh - 24px);
        padding: 66px 22px 30px;
    }
    .upc2-ninja-modal__close {
        top: 12px;
        right: 12px;
        width: 42px;
        height: 42px;
        min-width: 42px;
        min-height: 42px;
    }
    #upc2-ninja-modal .nf-row {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    #upc2-ninja-modal .nf-cell {
        width: 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    #upc2-ninja-modal .nf-field-container {
        margin-bottom: 20px !important;
    }
    #upc2-ninja-modal .nf-field-container.submit-container,
    #upc2-ninja-modal .submit-container {
        margin-top: 30px !important;
    }
    #upc2-ninja-modal .nf-form-fields-required.upc2-ninja-required-under-logo {
        margin-top: 7px !important;
        font-size: 10.5px !important;
    }
    #upc2-ninja-modal .nf-field-element input:not([type="button"]):not([type="submit"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]),
    #upc2-ninja-modal .nf-field-element select {
        min-height: 56px !important;
    }
    #upc2-ninja-modal .nf-field-element textarea {
        min-height: 130px !important;
    }
}

@media (max-width: 420px) {
    .upc2-ninja-modal {
        padding: 8px;
    }
    .upc2-ninja-modal__dialog {
        max-height: calc(100vh - 16px);
        max-height: calc(100dvh - 16px);
        border-radius: 17px;
    }
    .upc2-ninja-modal__content {
        max-height: calc(100vh - 16px);
        max-height: calc(100dvh - 16px);
        padding: 64px 16px 26px;
    }
}
