.bslg-cta-card {
    position: relative;
    display: block;
    overflow: hidden;
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    border: 1px solid var(--bslg-cta-border);
    border-radius: var(--bslg-cta-radius);
    background: var(--bslg-cta-bg);
    color: var(--bslg-cta-text);
    text-decoration: none;
    font-family: "Yu Gothic", "YuGothic", "Meiryo", sans-serif;
}

a.bslg-cta-card:hover {
    color: var(--bslg-cta-text);
    text-decoration: none;
    opacity: 0.96;
}

.bslg-cta-shadow-none {
    box-shadow: none;
}

.bslg-cta-shadow-soft {
    box-shadow: 3px 3px 0 rgba(0, 0, 0, 0.10);
}

.bslg-cta-shadow-strong {
    box-shadow: 6px 8px 18px rgba(0, 0, 0, 0.18);
}

.bslg-cta-content {
    position: relative;
    z-index: 2;
    padding: 28px 24px;
    text-align: center;
}

.bslg-cta-title {
    margin: 0 0 16px 0;
    color: var(--bslg-cta-title);
    font-size: 23px;
    line-height: 1.45;
    font-weight: 800;
    letter-spacing: 0.04em;
}

.bslg-cta-description {
    margin: 0;
    color: var(--bslg-cta-desc);
    font-size: 14px;
    line-height: 1.8;
}

.bslg-cta-button-wrap {
    margin-top: 20px;
}

.bslg-cta-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 150px;
    min-height: 40px;
    padding: 9px 18px;
    border: 1px solid var(--bslg-cta-btn-text);
    background: var(--bslg-cta-btn-bg);
    color: var(--bslg-cta-btn-text);
    text-decoration: none;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.3;
}

.bslg-cta-button:hover {
    color: var(--bslg-cta-btn-text);
    text-decoration: none;
    opacity: 0.9;
}

.bslg-cta-image-wrap {
    position: relative;
    z-index: 2;
    overflow: hidden;
    height: var(--bslg-cta-image-height);
    border-radius: var(--bslg-cta-image-radius);
}

.bslg-cta-image-wrap img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: var(--bslg-cta-object-position);
}

.bslg-cta-image-left,
.bslg-cta-image-right {
    display: grid;
    grid-template-columns: 42% 1fr;
    align-items: stretch;
}

.bslg-cta-image-right {
    grid-template-columns: 1fr 42%;
}

.bslg-cta-image-left .bslg-cta-image-wrap,
.bslg-cta-image-right .bslg-cta-image-wrap {
    height: auto;
    min-height: var(--bslg-cta-image-height);
    border-radius: 0;
}

.bslg-cta-image-left .bslg-cta-content,
.bslg-cta-image-right .bslg-cta-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.bslg-cta-bg-image {
    position: absolute;
    inset: 0;
    z-index: 1;
    background-size: cover;
    background-position: var(--bslg-cta-object-position);
    opacity: 0.28;
}

.bslg-cta-image-background .bslg-cta-content {
    min-height: var(--bslg-cta-image-height);
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.bslg-cta-ribbon {
    position: absolute;
    z-index: 5;
    top: 14px;
    width: 150px;
    padding: 7px 0;
    background: var(--bslg-cta-ribbon-bg);
    color: var(--bslg-cta-ribbon-text);
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
    text-align: center;
    transform-origin: center;
}

.bslg-cta-ribbon-right {
    right: -42px;
    transform: rotate(45deg);
}

.bslg-cta-ribbon-left {
    left: -42px;
    transform: rotate(-45deg);
}

/* -----------------------------------------------------------
   曲線装飾
   ----------------------------------------------------------- */
.bslg-cta-curve-top::before,
.bslg-cta-curve-both::before {
    content: "";
    position: absolute;
    left: -5%;
    right: -5%;
    top: -46px;
    z-index: 3;
    height: 92px;
    background: #ffffff;
    border-radius: 0 0 50% 50% / 0 0 100% 100%;
    pointer-events: none;
}

.bslg-cta-curve-bottom::after,
.bslg-cta-curve-both::after {
    content: "";
    position: absolute;
    left: -5%;
    right: -5%;
    bottom: -46px;
    z-index: 3;
    height: 92px;
    background: #ffffff;
    border-radius: 50% 50% 0 0 / 100% 100% 0 0;
    pointer-events: none;
}

@media screen and (max-width: 768px) {
    .bslg-cta-image-left,
    .bslg-cta-image-right {
        grid-template-columns: 1fr;
    }

    .bslg-cta-image-right .bslg-cta-image-wrap {
        order: -1;
    }

    .bslg-cta-content {
        padding: 24px 18px;
    }

    .bslg-cta-title {
        font-size: 20px;
    }

    .bslg-cta-description {
        font-size: 13px;
    }

    .bslg-cta-button {
        width: 100%;
        max-width: 280px;
    }
}

/* -----------------------------------------------------------
   v1.2.2 Elementor寄せ追加設定
   ----------------------------------------------------------- */
.bslg-cta-card {
    min-height: var(--bslg-cta-box-height);
    transition: transform 0.25s ease, opacity 0.25s ease, box-shadow 0.25s ease;
}

.bslg-cta-card[style*="--bslg-cta-box-height: 0px"] {
    min-height: 0;
}

.bslg-cta-content {
    padding: var(--bslg-cta-pad-top) var(--bslg-cta-pad-right) var(--bslg-cta-pad-bottom) var(--bslg-cta-pad-left);
}

.bslg-cta-align-left .bslg-cta-content {
    text-align: left;
}

.bslg-cta-align-center .bslg-cta-content {
    text-align: center;
}

.bslg-cta-align-right .bslg-cta-content {
    text-align: right;
}

.bslg-cta-vpos-top .bslg-cta-content {
    justify-content: flex-start;
}

.bslg-cta-vpos-middle .bslg-cta-content {
    justify-content: center;
}

.bslg-cta-vpos-bottom .bslg-cta-content {
    justify-content: flex-end;
}

.bslg-cta-button {
    padding: var(--bslg-cta-btn-pad-top) var(--bslg-cta-btn-pad-right) var(--bslg-cta-btn-pad-bottom) var(--bslg-cta-btn-pad-left);
    border-color: var(--bslg-cta-btn-border);
    border-width: var(--bslg-cta-btn-border-width);
    border-radius: var(--bslg-cta-btn-radius);
}

.bslg-cta-hover-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background: var(--bslg-cta-overlay);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease;
}

.bslg-cta-card:hover .bslg-cta-hover-overlay {
    opacity: 0.08;
}

.bslg-cta-hover-zoom_in:hover {
    transform: scale(1.03);
}

.bslg-cta-hover-zoom_out:hover {
    transform: scale(0.98);
}

.bslg-cta-hover-move_left:hover {
    transform: translateX(-8px);
}

.bslg-cta-hover-move_right:hover {
    transform: translateX(8px);
}

.bslg-cta-hover-move_up:hover {
    transform: translateY(-8px);
}

.bslg-cta-hover-move_down:hover {
    transform: translateY(8px);
}

.bslg-cta-ribbon-right {
    right: calc(var(--bslg-cta-ribbon-distance) * -1);
}

.bslg-cta-ribbon-left {
    left: calc(var(--bslg-cta-ribbon-distance) * -1);
}

/* マスク */
.bslg-cta-mask .bslg-cta-image-wrap {
    background: transparent;
}

.bslg-cta-mask .bslg-cta-image-wrap img {
    clip-path: circle(45% at 50% 50%);
}

.bslg-cta-mask-circle .bslg-cta-image-wrap img {
    clip-path: circle(45% at 50% 50%);
}

.bslg-cta-mask-oval_vertical .bslg-cta-image-wrap img {
    clip-path: ellipse(35% 48% at 50% 50%);
}

.bslg-cta-mask-oval_horizontal .bslg-cta-image-wrap img {
    clip-path: ellipse(48% 34% at 50% 50%);
}

.bslg-cta-mask-round_square .bslg-cta-image-wrap img {
    clip-path: inset(5% 5% 5% 5% round 22%);
}

.bslg-cta-mask-round_rect .bslg-cta-image-wrap img {
    clip-path: inset(12% 4% 12% 4% round 20%);
}

.bslg-cta-mask-triangle .bslg-cta-image-wrap img {
    clip-path: polygon(50% 5%, 95% 92%, 5% 92%);
}

.bslg-cta-mask-diamond .bslg-cta-image-wrap img {
    clip-path: polygon(50% 5%, 95% 50%, 50% 95%, 5% 50%);
}

.bslg-cta-mask-pentagon .bslg-cta-image-wrap img {
    clip-path: polygon(50% 4%, 96% 38%, 78% 94%, 22% 94%, 4% 38%);
}

.bslg-cta-mask-hexagon .bslg-cta-image-wrap img {
    clip-path: polygon(25% 6%, 75% 6%, 98% 50%, 75% 94%, 25% 94%, 2% 50%);
}

.bslg-cta-mask-heptagon .bslg-cta-image-wrap img {
    clip-path: polygon(50% 4%, 88% 20%, 98% 58%, 72% 94%, 28% 94%, 2% 58%, 12% 20%);
}

.bslg-cta-mask-octagon .bslg-cta-image-wrap img {
    clip-path: polygon(30% 4%, 70% 4%, 96% 30%, 96% 70%, 70% 96%, 30% 96%, 4% 70%, 4% 30%);
}

/* -----------------------------------------------------------
   v1.2.4 リボン4隅配置
   ----------------------------------------------------------- */
.bslg-cta-ribbon-top_left {
    top: 14px;
    left: calc(var(--bslg-cta-ribbon-distance) * -1);
    right: auto;
    bottom: auto;
    transform: rotate(-45deg);
}

.bslg-cta-ribbon-top_right {
    top: 14px;
    right: calc(var(--bslg-cta-ribbon-distance) * -1);
    left: auto;
    bottom: auto;
    transform: rotate(45deg);
}

.bslg-cta-ribbon-bottom_left {
    bottom: 14px;
    left: calc(var(--bslg-cta-ribbon-distance) * -1);
    right: auto;
    top: auto;
    transform: rotate(45deg);
}

.bslg-cta-ribbon-bottom_right {
    bottom: 14px;
    right: calc(var(--bslg-cta-ribbon-distance) * -1);
    left: auto;
    top: auto;
    transform: rotate(-45deg);
}

/* 旧値互換 */
.bslg-cta-ribbon-left {
    top: 14px;
    left: calc(var(--bslg-cta-ribbon-distance) * -1);
    right: auto;
    bottom: auto;
    transform: rotate(-45deg);
}

.bslg-cta-ribbon-right {
    top: 14px;
    right: calc(var(--bslg-cta-ribbon-distance) * -1);
    left: auto;
    bottom: auto;
    transform: rotate(45deg);
}

/* -----------------------------------------------------------
   v1.2.5 リボン切れ対策
   ----------------------------------------------------------- */
.bslg-cta-card {
    overflow: visible;
}

.bslg-cta-ribbon {
    width: var(--bslg-cta-ribbon-width);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* 左上 / 右上 */
.bslg-cta-ribbon-top_left {
    top: 14px;
    left: calc(var(--bslg-cta-ribbon-distance) * -1);
    right: auto;
    bottom: auto;
    transform: rotate(-45deg);
}

.bslg-cta-ribbon-top_right {
    top: 14px;
    right: calc(var(--bslg-cta-ribbon-distance) * -1);
    left: auto;
    bottom: auto;
    transform: rotate(45deg);
}

/* 左下 / 右下 */
.bslg-cta-ribbon-bottom_left {
    bottom: 14px;
    left: calc(var(--bslg-cta-ribbon-distance) * -1);
    right: auto;
    top: auto;
    transform: rotate(45deg);
}

.bslg-cta-ribbon-bottom_right {
    bottom: 14px;
    right: calc(var(--bslg-cta-ribbon-distance) * -1);
    left: auto;
    top: auto;
    transform: rotate(-45deg);
}

/* -----------------------------------------------------------
   v1.2.6 リボン角固定修正
   ----------------------------------------------------------- */
.bslg-cta-card {
    overflow: hidden;
}

/* リボンはカード外へ飛ばさず、角の中で斜め帯として見せる */
.bslg-cta-ribbon {
    width: var(--bslg-cta-ribbon-width);
    height: 28px;
    padding: 8px 0;
    box-sizing: border-box;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1;
}

/* 左上 / 右上 */
.bslg-cta-ribbon-top_left {
    top: calc(var(--bslg-cta-ribbon-distance) * 0.55);
    left: calc(var(--bslg-cta-ribbon-distance) * -0.78);
    right: auto;
    bottom: auto;
    transform: rotate(-45deg);
}

.bslg-cta-ribbon-top_right {
    top: calc(var(--bslg-cta-ribbon-distance) * 0.55);
    right: calc(var(--bslg-cta-ribbon-distance) * -0.78);
    left: auto;
    bottom: auto;
    transform: rotate(45deg);
}

/* 左下 / 右下 */
.bslg-cta-ribbon-bottom_left {
    bottom: calc(var(--bslg-cta-ribbon-distance) * 0.55);
    left: calc(var(--bslg-cta-ribbon-distance) * -0.78);
    right: auto;
    top: auto;
    transform: rotate(45deg);
}

.bslg-cta-ribbon-bottom_right {
    bottom: calc(var(--bslg-cta-ribbon-distance) * 0.55);
    right: calc(var(--bslg-cta-ribbon-distance) * -0.78);
    left: auto;
    top: auto;
    transform: rotate(-45deg);
}

/* 旧値互換 */
.bslg-cta-ribbon-left {
    top: calc(var(--bslg-cta-ribbon-distance) * 0.55);
    left: calc(var(--bslg-cta-ribbon-distance) * -0.78);
    right: auto;
    bottom: auto;
    transform: rotate(-45deg);
}

.bslg-cta-ribbon-right {
    top: calc(var(--bslg-cta-ribbon-distance) * 0.55);
    right: calc(var(--bslg-cta-ribbon-distance) * -0.78);
    left: auto;
    bottom: auto;
    transform: rotate(45deg);
}

/* -----------------------------------------------------------
   v1.2.7 リボンを画像ではなくカード角基準に固定
   ----------------------------------------------------------- */
.bslg-cta-card {
    overflow: hidden !important;
    isolation: isolate;
}

.bslg-cta-image-wrap,
.bslg-cta-content,
.bslg-cta-bg-image {
    z-index: 1;
}

.bslg-cta-ribbon {
    z-index: 50 !important;
    width: var(--bslg-cta-ribbon-width) !important;
    height: 28px;
    padding: 8px 0 !important;
    box-sizing: border-box;
    line-height: 1 !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    pointer-events: none;
}

/*
  Distance は「角から帯中心までの距離」として使う。
  左上の場合:
    top  = Distance
    left = Distance - (帯の長さ / 2)
  こうすると、帯の長さを変えてもカード角から大きく飛び出さない。
*/
.bslg-cta-ribbon-top_left {
    top: var(--bslg-cta-ribbon-distance) !important;
    left: calc(var(--bslg-cta-ribbon-distance) - (var(--bslg-cta-ribbon-width) / 2)) !important;
    right: auto !important;
    bottom: auto !important;
    transform: rotate(-45deg) !important;
}

.bslg-cta-ribbon-top_right {
    top: var(--bslg-cta-ribbon-distance) !important;
    right: calc(var(--bslg-cta-ribbon-distance) - (var(--bslg-cta-ribbon-width) / 2)) !important;
    left: auto !important;
    bottom: auto !important;
    transform: rotate(45deg) !important;
}

.bslg-cta-ribbon-bottom_left {
    bottom: var(--bslg-cta-ribbon-distance) !important;
    left: calc(var(--bslg-cta-ribbon-distance) - (var(--bslg-cta-ribbon-width) / 2)) !important;
    right: auto !important;
    top: auto !important;
    transform: rotate(45deg) !important;
}

.bslg-cta-ribbon-bottom_right {
    bottom: var(--bslg-cta-ribbon-distance) !important;
    right: calc(var(--bslg-cta-ribbon-distance) - (var(--bslg-cta-ribbon-width) / 2)) !important;
    left: auto !important;
    top: auto !important;
    transform: rotate(-45deg) !important;
}

/* 旧値互換 */
.bslg-cta-ribbon-left {
    top: var(--bslg-cta-ribbon-distance) !important;
    left: calc(var(--bslg-cta-ribbon-distance) - (var(--bslg-cta-ribbon-width) / 2)) !important;
    right: auto !important;
    bottom: auto !important;
    transform: rotate(-45deg) !important;
}

.bslg-cta-ribbon-right {
    top: var(--bslg-cta-ribbon-distance) !important;
    right: calc(var(--bslg-cta-ribbon-distance) - (var(--bslg-cta-ribbon-width) / 2)) !important;
    left: auto !important;
    bottom: auto !important;
    transform: rotate(45deg) !important;
}

/* -----------------------------------------------------------
   v1.2.8 開始アニメーション
   ----------------------------------------------------------- */
.bslg-cta-card[class*="bslg-cta-entrance-"]:not(.bslg-cta-entrance-none) {
    animation-duration: var(--bslg-cta-animation-duration);
    animation-delay: var(--bslg-cta-animation-delay);
    animation-fill-mode: both;
    animation-timing-function: ease;
}

.bslg-cta-entrance-fade_in {
    animation-name: bslgCtaFadeIn;
}

.bslg-cta-entrance-fade_in_down {
    animation-name: bslgCtaFadeInDown;
}

.bslg-cta-entrance-fade_in_left {
    animation-name: bslgCtaFadeInLeft;
}

.bslg-cta-entrance-fade_in_right {
    animation-name: bslgCtaFadeInRight;
}

.bslg-cta-entrance-fade_in_up {
    animation-name: bslgCtaFadeInUp;
}

.bslg-cta-entrance-zoom_in {
    animation-name: bslgCtaZoomIn;
}

.bslg-cta-entrance-zoom_out {
    animation-name: bslgCtaZoomOut;
}

.bslg-cta-entrance-slide_in_left {
    animation-name: bslgCtaSlideInLeft;
}

.bslg-cta-entrance-slide_in_right {
    animation-name: bslgCtaSlideInRight;
}

.bslg-cta-entrance-slide_in_up {
    animation-name: bslgCtaSlideInUp;
}

.bslg-cta-entrance-slide_in_down {
    animation-name: bslgCtaSlideInDown;
}

@keyframes bslgCtaFadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes bslgCtaFadeInDown {
    from { opacity: 0; transform: translateY(-28px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes bslgCtaFadeInLeft {
    from { opacity: 0; transform: translateX(-28px); }
    to { opacity: 1; transform: translateX(0); }
}

@keyframes bslgCtaFadeInRight {
    from { opacity: 0; transform: translateX(28px); }
    to { opacity: 1; transform: translateX(0); }
}

@keyframes bslgCtaFadeInUp {
    from { opacity: 0; transform: translateY(28px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes bslgCtaZoomIn {
    from { opacity: 0; transform: scale(0.86); }
    to { opacity: 1; transform: scale(1); }
}

@keyframes bslgCtaZoomOut {
    from { opacity: 0; transform: scale(1.12); }
    to { opacity: 1; transform: scale(1); }
}

@keyframes bslgCtaSlideInLeft {
    from { transform: translateX(-60px); }
    to { transform: translateX(0); }
}

@keyframes bslgCtaSlideInRight {
    from { transform: translateX(60px); }
    to { transform: translateX(0); }
}

@keyframes bslgCtaSlideInUp {
    from { transform: translateY(60px); }
    to { transform: translateY(0); }
}

@keyframes bslgCtaSlideInDown {
    from { transform: translateY(-60px); }
    to { transform: translateY(0); }
}

/* -----------------------------------------------------------
   v1.2.9 画面内表示時に開始アニメーション
   ----------------------------------------------------------- */
.bslg-cta-card.bslg-cta-animate-ready:not(.bslg-cta-visible):not(.bslg-cta-entrance-none) {
    opacity: 0;
    animation-name: none !important;
}

.bslg-cta-card.bslg-cta-visible:not(.bslg-cta-entrance-none) {
    animation-duration: var(--bslg-cta-animation-duration);
    animation-delay: var(--bslg-cta-animation-delay);
    animation-fill-mode: both;
    animation-timing-function: ease;
}

/* -----------------------------------------------------------
   v1.3.0 リボンシャドウ
   ----------------------------------------------------------- */
.bslg-cta-ribbon-shadow-none {
    box-shadow: none;
}

.bslg-cta-ribbon-shadow-soft {
    box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.22);
}

.bslg-cta-ribbon-shadow-strong {
    box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.34);
}

/* -----------------------------------------------------------
   v1.3.1 レスポンシブ表示制御
   ----------------------------------------------------------- */
@media screen and (min-width: 1025px) {
    .bslg-cta-hide-desktop {
        display: none !important;
    }
}

@media screen and (min-width: 768px) and (max-width: 1024px) {
    .bslg-cta-hide-tablet {
        display: none !important;
    }
}

@media screen and (max-width: 767px) {
    .bslg-cta-hide-mobile {
        display: none !important;
    }
}

/* -----------------------------------------------------------
   v1.3.2 開始アニメーション速度調整
   ----------------------------------------------------------- */
.bslg-cta-card.bslg-cta-visible:not(.bslg-cta-entrance-none),
.bslg-cta-card[class*="bslg-cta-entrance-"]:not(.bslg-cta-entrance-none) {
    animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
}

/* 同名 keyframes を後勝ちで上書きし、動きが見える距離に調整 */
@keyframes bslgCtaFadeInDown {
    from { opacity: 0; transform: translateY(-46px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes bslgCtaFadeInLeft {
    from { opacity: 0; transform: translateX(-46px); }
    to { opacity: 1; transform: translateX(0); }
}

@keyframes bslgCtaFadeInRight {
    from { opacity: 0; transform: translateX(46px); }
    to { opacity: 1; transform: translateX(0); }
}

@keyframes bslgCtaFadeInUp {
    from { opacity: 0; transform: translateY(46px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes bslgCtaZoomIn {
    from { opacity: 0; transform: scale(0.78); }
    to { opacity: 1; transform: scale(1); }
}

@keyframes bslgCtaZoomOut {
    from { opacity: 0; transform: scale(1.22); }
    to { opacity: 1; transform: scale(1); }
}

@keyframes bslgCtaSlideInLeft {
    from { transform: translateX(-96px); opacity: 0.25; }
    to { transform: translateX(0); opacity: 1; }
}

@keyframes bslgCtaSlideInRight {
    from { transform: translateX(96px); opacity: 0.25; }
    to { transform: translateX(0); opacity: 1; }
}

@keyframes bslgCtaSlideInUp {
    from { transform: translateY(96px); opacity: 0.25; }
    to { transform: translateY(0); opacity: 1; }
}

@keyframes bslgCtaSlideInDown {
    from { transform: translateY(-96px); opacity: 0.25; }
    to { transform: translateY(0); opacity: 1; }
}

/* -----------------------------------------------------------
   v1.3.3 開始アニメーション移動量拡大
   ----------------------------------------------------------- */
/*
  Left / Right / Up / Down は 96px では小さく、
  Elementor の「端から来る」感が出ませんでした。
  vw/vh を使って大きく移動させます。
*/
@keyframes bslgCtaFadeInLeft {
    from { opacity: 0; transform: translateX(-45vw); }
    to { opacity: 1; transform: translateX(0); }
}

@keyframes bslgCtaFadeInRight {
    from { opacity: 0; transform: translateX(45vw); }
    to { opacity: 1; transform: translateX(0); }
}

@keyframes bslgCtaFadeInUp {
    from { opacity: 0; transform: translateY(22vh); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes bslgCtaFadeInDown {
    from { opacity: 0; transform: translateY(-22vh); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes bslgCtaSlideInLeft {
    from { opacity: 0.25; transform: translateX(-70vw); }
    to { opacity: 1; transform: translateX(0); }
}

@keyframes bslgCtaSlideInRight {
    from { opacity: 0.25; transform: translateX(70vw); }
    to { opacity: 1; transform: translateX(0); }
}

@keyframes bslgCtaSlideInUp {
    from { opacity: 0.25; transform: translateY(45vh); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes bslgCtaSlideInDown {
    from { opacity: 0.25; transform: translateY(-45vh); }
    to { opacity: 1; transform: translateY(0); }
}
