.gws-cta-wrapper {
    margin-top: 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.gws-cta-button {
    appearance: none;
    border: none;
    cursor: pointer;
    width: var(--gws-cta-width, 100%);
    height: var(--gws-cta-height, 48px);
    border-radius: var(--gws-cta-radius, 8px);
    background: var(--gws-cta-bg, #2f3940);
    color: var(--gws-cta-color, #ffffff);
    font-size: var(--gws-cta-font-size, 15px);
    font-weight: 700;
    line-height: 1;
    transition: transform 0.14s ease, box-shadow 0.14s ease, opacity 0.14s ease;
    box-shadow: 0 10px 18px -14px rgba(32, 43, 51, 0.68);
}

.gws-cta-button:hover {
    transform: translateY(-1px);
    box-shadow: 0 12px 18px -12px rgba(32, 43, 51, 0.74);
}

.gws-cta-button:focus-visible {
    outline: 2px solid #1f6feb;
    outline-offset: 2px;
}

.gws-cta-button.is-loading {
    opacity: 0.8;
    cursor: wait;
}

.gws-cta-wrapper.is-outofstock .gws-cta-button,
.gws-cta-button:disabled {
    opacity: 0.55;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

.gws-cta-stock-alert {
    font-size: 12px;
    color: #56616a;
}

.gws-cta-wrapper.is-outofstock .gws-cta-stock-alert {
    color: #a13a35;
    font-weight: 700;
}
