.cpf-header-ribbon {
    /* Sit in the theme's reserved top:50px header gap; out of flow so heroes stay full-bleed. */
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    background: #90d500;
    color: #1a1a1a;
    font-family: "Roboto", Sans-serif;
    font-size: 11px;
    font-weight: 400;
    line-height: 1.3;
    letter-spacing: 0.3px;
    box-sizing: border-box;
    z-index: 2;
}

.cpf-header-ribbon__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.5rem 1rem;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0.4rem 1rem;
    box-sizing: border-box;
}

.cpf-header-ribbon__text {
    text-align: center;
}

.cpf-header-ribbon__cta {
    display: inline-block;
    padding: 3px 11px;
    border: 1px solid #1a1a1a;
    border-radius: 3px;
    background: #1a1a1a;
    color: #fff !important;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.05em;
    line-height: 1.2;
    text-decoration: none !important;
    text-transform: uppercase;
    white-space: nowrap;
}

.cpf-header-ribbon__cta:hover,
.cpf-header-ribbon__cta:focus {
    background: #fff;
    border-color: #1a1a1a;
    color: #1a1a1a !important;
}

/* Theme header is already top:50px; only bump when the ribbon is taller. */
body.cpf-has-header-ribbon .elementor-location-header {
    top: var(--cpf-header-ribbon-offset, 50px) !important;
}
