 body.rfi-drawer-open {
        overflow: hidden;
    }

    .rfi-drawer {
        position: fixed;
        inset: 0;
        width: 100%;
        max-width: none;
        height: 100%;
        max-height: none;
        margin: 0;
        padding: 0;
        border: 0;
        background: transparent;
        overflow: hidden;
    }

    .rfi-drawer::backdrop {
        background: rgba(12, 30, 52, 0.72);
    }

    .rfi-drawer__panel {
        display: flex;
        flex-direction: column;
        width: min(100%, 650px);
        height: 100%;
        margin-left: auto;
        background: #fff;
        box-shadow: -12px 0 32px rgba(0, 0, 0, 0.25);
        transform: translateX(100%);
        transition: transform 300ms ease;
    }

    .rfi-drawer.is-open .rfi-drawer__panel {
        transform: translateX(0);
    }

    .rfi-drawer__header {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 1rem;
        padding: 1.5rem 1.75rem;
        border-bottom: 1px solid #d9dee5;
    }

    .rfi-drawer__eyebrow {
        margin: 0 0 0.25rem;
        color: #555;
        font-size: 0.875rem;
        font-weight: 600;
    }

    .rfi-drawer__header h2 {
        margin: 0;
        color: #172b4d;
        font-size: clamp(1.5rem, 4vw, 1.75rem);
        line-height: 1.2;
    }

    .rfi-drawer__close {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        flex: 0 0 44px;
        width: 44px;
        height: 44px;
        padding: 0;
        border: 0;
        border-radius: 50%;
        background: #edf1f5;
        color: #172b4d;
        font-size: 2rem;
        line-height: 1;
        cursor: pointer;
    }

    .rfi-drawer__close:hover,
    .rfi-drawer__close:focus-visible {
        background: #dce5ee;
    }

    .rfi-drawer__close:focus-visible {
        outline: 3px solid #006eb6;
        outline-offset: 2px;
    }

    .rfi-drawer__content {
        flex: 1;
        padding: 1.75rem;
        overflow-y: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
    }

    @media (max-width: 767.98px) {
        .rfi-drawer__header,
        .rfi-drawer__content {
            padding: 1.25rem;
        }
    }

    @media (prefers-reduced-motion: reduce) {
        .rfi-drawer__panel {
            transition: none;
        }
    }
