.bom-persistent-trust-badge {
    position: fixed;
    left: var(--bom-ptb-left);
    bottom: var(--bom-ptb-bottom);
    z-index: 9000;
    width: var(--bom-ptb-size);
    height: var(--bom-ptb-size);
    font-family: Montserrat, Arial, sans-serif;
    box-sizing: border-box;
    overflow: visible;
    isolation: isolate;
    --bom-ptb-panel-height: calc(var(--bom-ptb-size) - 8px);
    --bom-ptb-panel-vertical-inset: 4px;
}

.bom-persistent-trust-badge,
.bom-persistent-trust-badge * {
    box-sizing: border-box;
}

/*
 * Explicit composition layers.
 * The badge layer permanently owns the foreground. The panel layer permanently
 * owns the background. The launcher button no longer participates in deciding
 * the component's stacking order.
 */
.bom-ptb-panel-layer,
.bom-ptb-badge-layer {
    position: absolute;
    inset: 0;
}

.bom-ptb-panel-layer {
    z-index: 1;
    pointer-events: none;
}

.bom-ptb-badge-layer {
    z-index: 2;
    width: var(--bom-ptb-size);
    height: var(--bom-ptb-size);
    pointer-events: none;
}

body [data-bom-persistent-trust-badge] .bom-ptb-launcher {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: var(--bom-ptb-size) !important;
    height: var(--bom-ptb-size) !important;
    min-width: var(--bom-ptb-size) !important;
    min-height: var(--bom-ptb-size) !important;
    max-width: var(--bom-ptb-size) !important;
    max-height: var(--bom-ptb-size) !important;
    margin: 0 !important;
    padding: 0 !important;
    border: var(--bom-ptb-border-width) solid var(--bom-ptb-border) !important;
    border-radius: var(--bom-ptb-radius) !important;
    background: transparent !important;
    background-image: none !important;
    box-shadow: none;
    color: inherit !important;
    font: inherit !important;
    line-height: 1 !important;
    text-align: initial !important;
    text-decoration: none !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    cursor: pointer !important;
    overflow: hidden !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    transform: none !important;
    pointer-events: auto;
}

body [data-bom-persistent-trust-badge] .bom-ptb-launcher > img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: inherit !important;
    background: transparent !important;
    box-shadow: none !important;
    object-fit: contain !important;
}

body .bom-persistent-trust-badge.has-badge-shadow .bom-ptb-launcher {
    box-shadow: 0 6px 22px rgba(28, 54, 34, .18) !important;
}

body [data-bom-persistent-trust-badge] .bom-ptb-launcher:focus-visible {
    outline: 3px solid rgba(109, 40, 217, .35) !important;
    outline-offset: 3px !important;
}

body [data-bom-persistent-trust-badge] .bom-ptb-launcher:hover,
body [data-bom-persistent-trust-badge] .bom-ptb-launcher:focus,
body [data-bom-persistent-trust-badge] .bom-ptb-launcher:active {
    background: transparent !important;
    background-image: none !important;
    transform: none !important;
}

/*
 * Desktop/tablet construction:
 * - the shell starts at the badge origin, so the capsule's left end is beneath
 *   the foreground badge layer;
 * - the capsule is exactly 4px shorter at the top and bottom;
 * - JS expands only the horizontal width while the fixed-height layout fits.
 */
.bom-ptb-panel-shell {
    position: absolute;
    left: 0;
    bottom: var(--bom-ptb-panel-vertical-inset);
    width: calc(var(--bom-ptb-panel-width) + var(--bom-ptb-overlap));
    height: var(--bom-ptb-panel-height);
    overflow: hidden;
    visibility: hidden;
    pointer-events: none;
    transition: visibility 0s linear .28s;
}

.bom-ptb-panel {
    width: 100%;
    height: var(--bom-ptb-panel-height);
    min-height: var(--bom-ptb-panel-height);
    max-height: var(--bom-ptb-panel-height);
    overflow: hidden;
    margin: 0;
    padding-top: min(var(--bom-ptb-panel-padding), 4px);
    padding-bottom: min(var(--bom-ptb-panel-padding), 4px);
    padding-right: var(--bom-ptb-panel-padding);
    padding-left: calc(var(--bom-ptb-panel-padding) + var(--bom-ptb-size));
    border: var(--bom-ptb-panel-border-width) solid var(--bom-ptb-panel-border);
    border-radius: calc(var(--bom-ptb-panel-height) / 2);
    background: var(--bom-ptb-panel-bg);
    color: var(--bom-ptb-panel-text);
    display: flex;
    align-items: center;
    opacity: 0;
    transform: translateX(calc(-100% + var(--bom-ptb-size)));
    transition: transform .26s cubic-bezier(.22, .61, .36, 1), opacity .2s ease;
    will-change: transform, opacity;
}

.bom-persistent-trust-badge.has-panel-shadow .bom-ptb-panel-shell {
    filter: drop-shadow(0 14px 20px rgba(28, 54, 34, .16));
}

.bom-persistent-trust-badge.is-open .bom-ptb-panel-layer {
    pointer-events: auto;
}

.bom-persistent-trust-badge.is-open .bom-ptb-panel-shell {
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
}

.bom-persistent-trust-badge.is-open .bom-ptb-panel {
    opacity: 1;
    transform: translateX(0);
}

.bom-ptb-panel-content {
    width: 100%;
    max-height: 100%;
    overflow: hidden;
}

.bom-ptb-heading {
    margin: 0 0 4px !important;
    padding: 0 !important;
    color: var(--bom-ptb-panel-text) !important;
    font-family: Montserrat, Arial, sans-serif !important;
    font-size: var(--bom-ptb-heading-size) !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    text-transform: none !important;
}

.bom-ptb-message {
    color: var(--bom-ptb-panel-text) !important;
    font-family: Montserrat, Arial, sans-serif !important;
    font-size: var(--bom-ptb-body-size) !important;
    line-height: var(--bom-ptb-line-height) !important;
}

.bom-ptb-message p,
.bom-ptb-message li {
    color: inherit !important;
    font-family: inherit !important;
    line-height: inherit !important;
}

.bom-ptb-message p {
    margin: 0 0 4px !important;
}

.bom-ptb-message p:last-child {
    margin-bottom: 0 !important;
}

.bom-ptb-message ul,
.bom-ptb-message ol {
    margin: 3px 0 4px 18px !important;
    padding: 0 !important;
}

.bom-ptb-message h1,
.bom-ptb-message h2,
.bom-ptb-message h3,
.bom-ptb-message h4,
.bom-ptb-message h5,
.bom-ptb-message h6 {
    margin: 4px 0 3px !important;
    padding: 0 !important;
    color: inherit !important;
    font-family: inherit !important;
    line-height: 1.25 !important;
    text-transform: none !important;
}

.bom-ptb-message h1:first-child,
.bom-ptb-message h2:first-child,
.bom-ptb-message h3:first-child,
.bom-ptb-message h4:first-child,
.bom-ptb-message h5:first-child,
.bom-ptb-message h6:first-child {
    margin-top: 0 !important;
}

.bom-ptb-message img {
    max-width: 100% !important;
    max-height: calc(var(--bom-ptb-panel-height) - 8px) !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
}

.bom-ptb-message .aligncenter,
.bom-ptb-message img.aligncenter {
    display: block !important;
    margin: 3px auto !important;
}

.bom-ptb-message .alignleft,
.bom-ptb-message img.alignleft {
    float: left !important;
    margin: 2px 10px 3px 0 !important;
}

.bom-ptb-message .alignright,
.bom-ptb-message img.alignright {
    float: right !important;
    margin: 2px 0 3px 10px !important;
}

.bom-ptb-message .alignnone,
.bom-ptb-message img.alignnone {
    margin: 3px 0 !important;
}

.bom-ptb-message figure,
.bom-ptb-message .wp-caption {
    max-width: 100% !important;
    height: auto !important;
}

.bom-ptb-message:after {
    content: "";
    display: block;
    clear: both;
}

.bom-ptb-message a,
.bom-ptb-link {
    color: #6d28d9 !important;
    text-decoration: underline !important;
}

.bom-ptb-link-wrap {
    margin: 4px 0 0 !important;
}

.bom-ptb-link {
    font-size: var(--bom-ptb-body-size) !important;
    font-weight: 700 !important;
}

/*
 * Responsive/wrapped composition. JS also activates this on a wider viewport if
 * the rich content cannot fit the available horizontal space at fixed height.
 */
.bom-persistent-trust-badge.is-wrapped-layout .bom-ptb-panel-shell {
    height: auto;
    min-height: var(--bom-ptb-panel-height);
    overflow: hidden;
}

.bom-persistent-trust-badge.is-wrapped-layout .bom-ptb-panel {
    height: auto;
    min-height: var(--bom-ptb-panel-height);
    max-height: none;
    padding-top: 12px;
    padding-bottom: 12px;
    padding-right: min(var(--bom-ptb-panel-padding), 18px);
    padding-left: calc(min(var(--bom-ptb-panel-padding), 18px) + var(--bom-ptb-size));
    border-radius: min(24px, calc(var(--bom-ptb-panel-height) / 2));
    align-items: flex-start;
    overflow: visible;
}

.bom-persistent-trust-badge.is-wrapped-layout .bom-ptb-panel-content {
    max-height: none;
    overflow: visible;
}

.bom-persistent-trust-badge.is-wrapped-layout .bom-ptb-message img {
    max-height: none !important;
}

@media (max-width: 600px) {
    .bom-persistent-trust-badge {
        --bom-ptb-left: min(var(--bom-ptb-left), 14px);
        --bom-ptb-bottom: min(var(--bom-ptb-bottom), 14px);
        --bom-ptb-size: min(var(--bom-ptb-size), 60px);
        --bom-ptb-overlap: min(var(--bom-ptb-overlap), 30px);
        --bom-ptb-capsule-radius: min(var(--bom-ptb-capsule-radius), 30px);
    }
}
