/* === hero-step.css === */
:root {
    --ink: #111516;
    --green: #bded43;
    --sky: #bfe5ff;
    --blue: #75b6e6
}

* {
    box-sizing: border-box
}

html {
    scroll-behavior: smooth;
            overflow-x: hidden !important;

}

body {
    margin: 0;
    background: #f7fafc;
    color: var(--ink);
    font-family: 'DM Sans', Arial, sans-serif;

}

.hero-page {
    min-height: 100vh;
    overflow: hidden;
    background: linear-gradient(180deg, #a9d8f7 0%, #d9efff 38%, #f8fbfd 74%)
}

.hero-nav {
    width: min(1100px, calc(100% - 40px));
    height: 62px;
    margin: 18px auto 0;
    padding: 0 14px 0 20px;
    border: 1px solid rgba(255, 255, 255, .85);
    background: rgba(255, 255, 255, .82);
    box-shadow: 0 8px 24px rgba(44, 99, 135, .12);
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: relative;
    z-index: 10
}

.logo {
    color: var(--ink);
    text-decoration: none;
    font-weight: 800;
    font-size: 21px;
    letter-spacing: -1.3px;
    display: flex;
    align-items: center;
    gap: 8px
}

.logo span:first-child {
    width: 28px;
    height: 28px;
    background: #192c2c;
    color: var(--green);
    border-radius: 9px;
    display: grid;
    place-items: center;
    font-size: 16px
}

.logo .dot {
    color: #7eaa16
}

.hero-nav nav {
    display: flex;
    gap: 30px
}

.hero-nav nav a {
    font-size: 12px;
    text-decoration: none;
    color: #445258
}

.nav-button,
.primary-button {
    background: var(--ink);
    color: white;
    text-decoration: none;
    border-radius: 9px;
    padding: 12px 15px;
    font-size: 11px;
    font-weight: 700;
    box-shadow: 0 5px 0 rgba(255, 255, 255, .9), 0 8px 18px rgba(18, 25, 28, .25)
}

.nav-button b {
    margin-left: 12px;
    color: var(--green)
}

.hero-intro {
    text-align: center;
    max-width: 760px;
    margin: 78px auto 0;
    padding: 0 20px;
    position: relative;
    z-index: 5
}

.hero-badge {
    display: inline-flex;
    gap: 9px;
    align-items: center;
    font-size: 11px;
    color: #32624a;
    border: 1px solid rgba(42, 131, 76, .35);
    border-radius: 50px;
    padding: 8px 13px;
    background: rgba(235, 255, 235, .38)
}

.hero-badge i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #2abb61;
    box-shadow: 0 0 0 4px rgba(42, 187, 97, .13)
}

h1 {
    font-size: clamp(58px, 8vw, 103px);
    line-height: .94;
    letter-spacing: -6px;
    margin: 25px 0 20px;
    font-weight: 800
}

h1 em {
    font-family: Georgia, serif;
    font-weight: 400;
    letter-spacing: -5px
}

.hero-intro p {
    max-width: 570px;
    margin: 0 auto;
    color: #41515a;
    font-size: 16px;
    line-height: 1.55
}

.hero-buttons {
    display: flex;
    justify-content: center;
    gap: 16px;
    margin-top: 27px
}

.primary-button {
    display: inline-flex;
    gap: 22px;
    align-items: center;
    background: #212d2d;
    color: var(--green);
    padding: 15px 18px
}

.primary-button span {
    font-size: 16px;
    color: white
}

.secondary-button {
    display: inline-flex;
    gap: 14px;
    align-items: center;
    background: white;
    color: #1c282c;
    text-decoration: none;
    border-radius: 9px;
    padding: 15px 20px;
    font-size: 11px;
    font-weight: 700;
    box-shadow: 0 5px 0 rgba(255, 255, 255, .7), 0 8px 18px rgba(44, 99, 135, .13)
}

.secondary-button span {
    font-size: 9px;
    color: #4e6b73
}

.visual-wrap {
    height: 530px;
    width: min(1280px, 100%);
    margin: 55px auto 0;
    position: relative;
    perspective: 1100px
}

.screenshot-frame {
    position: absolute;
    z-index: 3;
    width: min(970px, 76vw);
    left: 50%;
    top: 18px;
    transform: translateX(-50%) scale(.93);
    transform-origin: center top;
    border: 8px solid rgba(255, 255, 255, .9);
    border-bottom-width: 12px;
    border-radius: 19px;
    background: white;
    box-shadow: 0 12px 0 rgba(255, 255, 255, .88), 0 32px 60px rgba(34, 79, 111, .22);
    overflow: hidden;
    transition: transform 1.1s cubic-bezier(.2, .9, .2, 1), box-shadow 1.1s
}

.screenshot-frame img {
    display: block;
    width: 100%;
    height: auto
}

.visual-wrap.is-zoomed .screenshot-frame {
    transform: translateX(-50%) scale(1.08);
    box-shadow: 0 25px 0 rgba(255, 255, 255, .95), 0 44px 90px rgba(34, 79, 111, .32)
}

.white-floor {
    position: absolute;
    z-index: 1;
    bottom: 0;
    left: 50%;
    width: 120%;
    height: 150px;
    transform: translateX(-50%);
    background: linear-gradient(180deg, transparent, #fff 46%);
    pointer-events: none
}

.character {
    position: absolute;
    z-index: 5;
    bottom: -18px;
    width: 260px;
    filter: drop-shadow(0 18px 9px rgba(30, 77, 99, .2));
    transition: transform 1s cubic-bezier(.2, .9, .2, 1)
}

.character img {
    width: 100%;
    display: block
}

.character-left {
    left: -1%;
    transform: rotate(-5deg)
}

.character-right {
    right: -1%;
    transform: scaleX(-1) rotate(-5deg)
}

.visual-wrap.is-zoomed .character-left {
    transform: translate(-40px, 35px) rotate(-8deg) scale(1.15)
}

.visual-wrap.is-zoomed .character-right {
    transform: translate(40px, 35px) scaleX(-1) rotate(-8deg) scale(1.15)
}

.floating-note {
    position: absolute;
    z-index: 6;
    display: flex;
    gap: 10px;
    align-items: center;
    padding: 11px 15px;
    border-radius: 12px;
    background: rgba(255, 255, 255, .9);
    box-shadow: 0 12px 28px rgba(40, 91, 120, .18);
    font-size: 10px;
    line-height: 1.35;
    animation: drift 5s ease-in-out infinite
}

.floating-note b {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--green);
    display: grid;
    place-items: center;
    font-size: 16px
}

.floating-note strong {
    font-size: 13px
}

.note-one {
    left: 12%;
    top: 54px
}

.note-two {
    right: 11%;
    top: 163px;
    animation-delay: -2s
}

.note-two b {
    background: #9ecdf0;
    color: white
}

.scroll-hint {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    color: #58717d;
    font-size: 10px;
    margin: 0 auto 25px
}

.scroll-hint span {
    width: 8px;
    height: 13px;
    border: 1px solid #58717d;
    border-radius: 8px;
    position: relative
}

.scroll-hint span:after {
    content: '';
    position: absolute;
    width: 2px;
    height: 3px;
    top: 3px;
    left: 2px;
    background: #58717d;
    border-radius: 2px
}

footer {
    width: min(1100px, calc(100% - 40px));
    margin: auto;
    border-top: 1px solid rgba(35, 72, 90, .15);
    padding: 18px 0 25px;
    display: flex;
    justify-content: space-between;
    color: #6b808b;
    font-size: 11px
}

@keyframes drift {

    0%,
    100% {
        translate: 0 0
    }

    50% {
        translate: 0 -10px
    }
}

@media(max-width:800px) {
    .hero-nav nav {
        display: none
    }

    .hero-nav {
        height: 56px
    }

    .hero-intro {
        margin-top: 65px
    }

    .visual-wrap {
        height: 390px;
        margin-top: 42px
    }

    .screenshot-frame {
        width: 94vw;
        top: 15px;
        border-width: 5px;
        border-bottom-width: 8px
    }

    .character {
        width: 150px;
        bottom: 0
    }

    .floating-note {
        transform: scale(.82);
        transform-origin: center
    }

    .note-one {
        left: 1%;
        top: 30px
    }

    .note-two {
        right: 0;
        top: 130px
    }

    h1 {
        letter-spacing: -4px
    }

    .hero-intro p {
        font-size: 14px
    }

    footer {
        flex-direction: column;
        gap: 8px
    }
}

@media(max-width:480px) {
    .hero-buttons {
        flex-direction: column;
        align-items: center
    }

    .visual-wrap {
        height: 295px
    }

    .character {
        width: 105px
    }

    .floating-note {
        display: none
    }

    .white-floor {
        height: 90px
    }

    .scroll-hint {
        margin-top: 4px
    }
}


/* === api-hero.css === */
.api-badge {
    object-fit: contain;
    vertical-align: middle;
    margin: 0 7px 7px;
    filter: drop-shadow(0 9px 8px rgba(36, 91, 52, .28));
    animation: apiTilt 5s ease-in-out infinite
}

.screenshot-frame {
    --scroll-zoom: 0;
    transform: translateX(-50%) translateY(calc(var(--scroll-zoom) * -18px)) scale(calc(.93 + var(--scroll-zoom) * .18));
    box-shadow: 0 12px 0 rgba(255, 255, 255, .88), 0 32px 60px rgba(34, 79, 111, .22), 0 34px 0 rgba(255, 255, 255, .25)
}

.visual-wrap {
    --depth: 0;
    transform: translateY(calc(var(--depth) * -8px));
    transition: transform .7s ease
}

.visual-wrap.is-zoomed {
    transform: translateY(-8px)
}

.visual-wrap.is-zoomed .screenshot-frame {
    transform: translateX(-50%) translateY(-18px) scale(1.11);
    box-shadow: 0 25px 0 rgba(255, 255, 255, .97), 0 46px 100px rgba(34, 79, 111, .34), 0 52px 26px rgba(255, 255, 255, .8)
}

@keyframes apiTilt {

    0%,
    100% {
        transform: rotate(-5deg) translateY(0)
    }

    50% {
        transform: rotate(5deg) translateY(-7px)
    }
}

@media(max-width:560px) {
    .api-badge {
        margin-bottom: 4px
    }

    .screenshot-frame {
        transform: translateX(-50%) scale(calc(.78 + var(--scroll-zoom) * .14))
    }

    .visual-wrap.is-zoomed .screenshot-frame {
        transform: translateX(-50%) translateY(-12px) scale(.94)
    }
}


/* === logo-override.css === */
.hero-nav .logo {
    display: flex;
    align-items: center;
    height: 38px
}

.hero-nav .logo img {
    display: block;
    width: 145px;
    height: auto;
    max-height: 34px;
    object-fit: contain
}

.hero-nav .logo span {
    display: none
}


/* === heading-override.css === */
.hero-intro {
    text-align: center
}

.hero-intro h1 {
    font-family: Georgia, 'Times New Roman', serif;
    font-weight: 700;
    font-style: italic;
    letter-spacing: -3px;
    white-space: nowrap;
    text-align: center
}

.hero-intro h1 em {
    font-family: inherit;
    font-weight: 700;
    font-style: italic;
    letter-spacing: -3px
}

.api-badge {
    margin-left: 3px;
    margin-right: 3px
}

.screenshot-frame {
    transform: translateX(-50%) translateY(calc(var(--scroll-zoom) * -18px)) scale(calc(.88 + var(--scroll-zoom) * .14))
}

@media(max-width:560px) {
    .hero-intro h1 {
        font-size: 42px;
        letter-spacing: -2px
    }

    .api-badge {}

    .screenshot-frame {
        width: 92vw
    }
}


/* === alignment-override.css === */
.hero-intro {
    width: min(1100px, calc(100% - 40px));
    max-width: none;
    text-align: center
}

.hero-intro h1 {
    text-align: center
}

.hero-intro>p {
    margin-left: auto;
    margin-right: auto
}

.hero-buttons {
    justify-content: center
}


/* === hero-fit.css === */
@media(min-width:801px) {
    .hero-page {
        min-height: 100vh
    }

    .hero-nav {
        margin-top: 14px
    }

    .hero-intro {
        margin-top: 43px
    }

    .hero-intro h1 {
        margin-top: 18px;
        margin-bottom: 13px;
        font-size: clamp(58px, 6.2vw, 88px)
    }

    .hero-intro p {
        font-size: 14px
    }

    .hero-buttons {
        margin-top: 19px
    }

    .visual-wrap {
        height: 330px;
        margin-top: 28px
    }

    .screenshot-frame {
        top: 0
    }

    .character {
        bottom: -40px;
        width: 190px
    }

    .note-two {
        top: 85px
    }

    .scroll-hint {
        margin-bottom: 8px
    }
}

@media(max-height:760px) and (min-width:801px) {
    .hero-intro {
        margin-top: 28px
    }

    .hero-intro h1 {
        font-size: 64px
    }

    .hero-intro p {
        font-size: 13px
    }

    .visual-wrap {
        height: 285px;
        margin-top: 20px
    }

    .hero-nav {
        height: 54px
    }

    .hero-buttons {
        margin-top: 14px
    }
}


/* === hero-3d.css === */
.visual-wrap {
    perspective: 1400px;
    transform-style: preserve-3d
}

.screenshot-frame {
    transform-style: preserve-3d;
    transform: translateX(-50%) rotateX(5deg) rotateY(-1deg) translateZ(0) scale(.82);
    box-shadow: 0 10px 0 #fff, 0 18px 0 rgba(255, 255, 255, .76), 0 32px 38px rgba(38, 92, 122, .2), 0 55px 28px rgba(255, 255, 255, .42)
}

.screenshot-frame:after {
    content: '';
    position: absolute;
    inset: auto 4% -21px;
    height: 22px;
    background: linear-gradient(180deg, #fff, rgba(255, 255, 255, .15));
    border-radius: 0 0 18px 18px;
    transform: skewX(-8deg);
    filter: blur(1px)
}

.visual-wrap.is-zoomed .screenshot-frame {
    transform: translateX(-50%) rotateX(1deg) rotateY(0) translateY(-15px) translateZ(65px) scale(.98);
    box-shadow: 0 18px 0 #fff, 0 28px 0 rgba(255, 255, 255, .82), 0 55px 80px rgba(30, 83, 117, .32), 0 72px 36px rgba(255, 255, 255, .65)
}

.white-floor {
    height: 110px;
    background: radial-gradient(ellipse at center, rgba(255, 255, 255, .95), rgba(255, 255, 255, .5) 45%, transparent 72%);
    filter: blur(4px)
}

@media(max-width:560px) {
    .screenshot-frame {
        transform: translateX(-50%) rotateX(4deg) scale(.72)
    }

    .visual-wrap.is-zoomed .screenshot-frame {
        transform: translateX(-50%) rotateX(1deg) translateY(-10px) translateZ(25px) scale(.84)
    }
}


/* === scroll-strong.css === */
.screenshot-frame {
    transition: transform 1.45s cubic-bezier(.16, 1, .3, 1), box-shadow 1.45s cubic-bezier(.16, 1, .3, 1) !important
}

.visual-wrap {
    transition: transform 1.45s cubic-bezier(.16, 1, .3, 1) !important
}

.visual-wrap.is-zoomed .screenshot-frame {
    transform: translateX(-50%) rotateX(1deg) translateY(-28px) translateZ(100px) scale(1.08) !important;
    box-shadow: 0 22px 0 #fff, 0 34px 0 rgba(255, 255, 255, .86), 0 70px 100px rgba(30, 83, 117, .4), 0 84px 42px rgba(255, 255, 255, .72) !important
}


/* === brand-palette.css === */
:root {
    --ink: #154579;
    --green: #5c9d60;
    --sky: #25B0AA;
    --blue: #25B0AA;
    --paper: #25B0AA
}

body {
    color: #154579;
    background: #25B0AA
}

.hero-page {
    background: linear-gradient(180deg, #25B0AA 0%, #25B0AA 58%, #5c9d60 100%)
}

.hero-nav {
    background: #25B0AA;
    border-color: #5c9d60;
    box-shadow: 0 8px 24px #154579
}

.logo,
.hero-nav nav a {
    color: #154579
}

.logo .dot,
.nav-button b,
.primary-button,
.primary-button span,
.hero-badge i,
.floating-note b {
    color: #5c9d60
}

.hero-badge {
    color: #154579;
    border-color: #5c9d60;
    background: #25B0AA
}

.hero-intro p,
.floating-note small,
.scroll-hint,
footer {
    color: #154579
}

.nav-button,
.primary-button,
.flow-result {
    background: #154579;
    color: #25B0AA
}

.secondary-button,
.floating-note,
.screenshot-frame {
    background: #25B0AA;
    color: #154579;
    border-color: #5c9d60
}

.secondary-button span,
.scroll-hint span,
.scroll-hint span:after {
    color: #25B0AA;
    border-color: #154579;
    background: #154579
}

.api-badge {
    filter: drop-shadow(0 9px 8px #154579)
}

.white-floor {
    background: linear-gradient(180deg, transparent, #25B0AA 46%)
}

.screenshot-frame {
    box-shadow: 0 12px 0 #25B0AA, 0 32px 60px #154579
}

.visual-wrap.is-zoomed .screenshot-frame {
    box-shadow: 0 25px 0 #25B0AA, 0 46px 90px #154579
}

.hero-page footer {
    border-color: #154579
}


/* === background-fix.css === */
body {
    background: #f7fafc
}

.hero-page {
    background: linear-gradient(180deg, #a9d8f7 0%, #d9efff 38%, #f8fbfd 74%)
}

.hero-nav {
    background: rgba(255, 255, 255, .82);
    box-shadow: 0 8px 24px rgba(44, 99, 135, .12)
}

.secondary-button,
.floating-note,
.screenshot-frame {
    background: #fff
}

.white-floor {
    background: linear-gradient(180deg, transparent, #fff 46%)
}


/* === frame-override.css === */
.screenshot-frame {
    border: 0 !important;
    border-radius: 14px !important;
    padding: 0 !important;
    background: transparent !important;
    overflow: hidden;
    box-shadow: 0 10px 0 rgba(255, 255, 255, .95), 0 22px 34px rgba(34, 79, 111, .2) !important
}

.screenshot-frame img {
    border-radius: 12px;
    display: block
}

.visual-wrap.is-zoomed .screenshot-frame {
    box-shadow: 0 18px 0 rgba(255, 255, 255, .98), 0 42px 75px rgba(34, 79, 111, .3) !important
}


/* === content-width.css === */
@media(min-width:801px) {
    .hero-nav {
        width: min(1240px, calc(100% - 40px))
    }

    .hero-intro {
        width: min(1240px, calc(100% - 40px))
    }

    .screenshot-frame {
        width: min(860px, 76vw) !important
    }

    .visual-wrap {
        width: min(1400px, 100%)
    }

    .character-left {
        left: 4%
    }

    .character-right {
        right: 4%
    }

    .note-two {
        right: 7%
    }
}


/* === button-polish.css === */
.nav-button,
.primary-button {
    background: #154579 !important;
    color: #fff !important;
    border: 1px solid #154579;
    position: relative;
    overflow: hidden;
    transition: transform .28s ease, box-shadow .28s ease, background .28s ease, color .28s ease
}

.nav-button:before,
.primary-button:before {
    content: '';
    position: absolute;
    inset: 0;
    background: #5c9d60;
    transform: translateX(-105%);
    transition: transform .35s ease;
    z-index: 0
}

.nav-button:hover,
.primary-button:hover {
    background: #154579 !important;
    color: #fff !important;
    transform: translateY(-4px);
    box-shadow: 0 10px 0 rgba(92, 157, 96, .35), 0 16px 25px rgba(21, 69, 121, .22)
}

.nav-button:hover:before,
.primary-button:hover:before {
    transform: translateX(0)
}

.nav-button b,
.primary-button span {
    position: relative;
    z-index: 1;
    color: #5c9d60 !important;
    transition: transform .28s ease, color .28s ease
}

.nav-button:hover b,
.primary-button:hover span {
    transform: translateX(4px);
    color: #fff !important
}

.secondary-button {
    background: #fff !important;
    color: #154579 !important;
    border: 1px solid #154579;
    box-shadow: 0 5px 0 #5c9d60, 0 9px 18px rgba(21, 69, 121, .12);
    transition: transform .28s ease, box-shadow .28s ease, background .28s ease, color .28s ease
}

.secondary-button:hover {
    background: #25B0AA !important;
    color: #154579 !important;
    transform: translateY(-4px);
    box-shadow: 0 9px 0 #5c9d60, 0 15px 24px rgba(21, 69, 121, .2)
}

.secondary-button span {
    color: #154579 !important;
    transition: transform .28s ease
}

.secondary-button:hover span {
    transform: translateX(4px)
}


/* === api-size.css === */
.hero-intro h1 .api-badge {
    border-radius: 12px;
    width: 48px;
    height: 48px;
    object-fit: contain;
    vertical-align: middle;
    margin: 0 5px 7px;
    flex: none
}

@media(max-width:800px) {
    .hero-intro h1 .api-badge {
        width: 38px;
        height: 38px;
        margin-bottom: 4px
    }
}

@media(max-width:560px) {
    .hero-intro h1 .api-badge {
        width: 32px;
        height: 32px
    }
}


/* === button-api-fix.css === */
.nav-button:before,
.primary-button:before {
    display: none !important
}

.nav-button:hover,
.primary-button:hover {
    background: #5c9d60 !important;
    color: #fff !important
}

.nav-button:hover b,
.primary-button:hover span {
    color: #fff !important
}

.secondary-button span {
    display: inline-block !important;
    width: auto !important;
    height: auto !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    color: #154579 !important;
    font-size: 12px !important;
    line-height: 1 !important
}

.secondary-button:hover span {
    color: #154579 !important;
    transform: translateX(4px)
}
/* 
.hero-intro h1 .api-badge {
    width: 58px;
    height: 58px
} */

@media(max-width:800px) {
    .hero-intro h1 .api-badge {
        width: 46px;
        height: 46px
    }
}

@media(max-width:560px) {
    .hero-intro h1 .api-badge {
        width: 38px;
        height: 38px
    }
}


/* === api-size-large.css === */
.hero-intro h1 .api-badge {
    /* width: 78px !important;
    height: 78px !important; */
    margin-left: 7px;
    margin-right: 7px
}

@media(max-width:800px) {
    .hero-intro h1 .api-badge {
        width: 60px !important;
        height: 60px !important
    }
}

@media(max-width:560px) {
    .hero-intro h1 .api-badge {
        width: 48px !important;
        height: 48px !important
    }
}


/* === button-final.css === */
.hero-buttons .primary-button,
.hero-buttons .secondary-button,
.nav-button {
    font-size: 13px !important;
    font-weight: 700;
    letter-spacing: .1px
}

.hero-buttons .primary-button,
.hero-buttons .secondary-button {
    min-height: 54px;
    padding: 16px 22px !important
}

.hero-buttons .primary-button:hover,
.hero-buttons .secondary-button:hover,
.nav-button:hover {
    animation: buttonLift .55s ease both
}

.hero-buttons .primary-button:active,
.hero-buttons .secondary-button:active,
.nav-button:active {
    transform: translateY(1px) scale(.98)
}

.hero-buttons .primary-button span,
.hero-buttons .secondary-button span,
.nav-button b {
    font-size: 16px !important
}

@keyframes buttonLift {
    0% {
        transform: translateY(0)
    }

    45% {
        transform: translateY(-6px) scale(1.025)
    }

    100% {
        transform: translateY(-4px) scale(1)
    }
}


/* === full-width-hero.css === */
@media(min-width:801px) {
    .hero-nav {
        width: calc(100% - 80px);
        max-width: none
    }

    .hero-intro {
        width: calc(100% - 80px);
        max-width: none
    }

    .visual-wrap {
        width: calc(100% - 80px);
        max-width: none
    }

    .screenshot-frame {
        width: min(1100px, calc(100vw - 150px)) !important
    }

    .character-left {
        left: 0
    }

    .character-right {
        right: 0
    }

    .note-two {
        right: 2%
    }
}


/* === heading-span.css === */
@media(min-width:801px) {
    .hero-intro h1 {
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: calc(100% - 80px);
        margin-left: auto;
        margin-right: auto;
        white-space: nowrap
    }

    .hero-intro h1 .api-badge {
        flex: 0 0 auto
    }

    .hero-intro h1 em {
        flex: 0 0 auto
    }
}


/* === heading-tight.css === */
.hero-intro h1 {
    display: block !important;
    width: auto !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important
}

.hero-intro h1 .api-badge {
    margin-left: 8px;
    margin-right: 8px
}

.hero-intro h1 em {
    display: inline !important
}


/* === api-cover.css === */
.hero-intro h1 .api-badge {
    /* width: 120px !important;
    height: 90px !important; */
    object-fit: cover;
    object-position: center;
    margin: 0 -2px 0 -2px;
    vertical-align: middle
}

@media(max-width:800px) {
    .hero-intro h1 .api-badge {
        width: 88px !important;
        height: 68px !important
    }
}

@media(max-width:560px) {
    .hero-intro h1 .api-badge {
        width: 58px !important;
        height: 48px !important
    }
}


/* === campaign-section.css === */
.campaign-section {
    width: min(1240px, calc(100% - 80px));
    margin: 90px auto 0;
    padding: 90px 0 120px;
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: 70px;
    align-items: center
}

.campaign-copy small,
.campaign-label {
    font: 10px 'DM Mono';
    letter-spacing: 1px;
    color: #5c9d60
}

.campaign-copy h2 {
    font-size: clamp(48px, 5vw, 74px);
    line-height: .92;
    letter-spacing: -4px;
    margin: 23px 0
}

.campaign-copy h2 em {
    font-family: Georgia, serif;
    font-weight: 400
}

.campaign-copy p {
    max-width: 410px;
    color: #154579;
    font-size: 15px;
    line-height: 1.7;
    margin-bottom: 28px
}

.campaign-feature {
    min-height: 350px;
    border-radius: 24px;
    padding: 42px;
    background: linear-gradient(135deg, #e8fbff, #fff);
    border: 1px solid rgba(37, 176, 170, .32);
    box-shadow: 0 24px 50px rgba(21, 69, 121, .12);
    position: relative;
    overflow: hidden
}

.campaign-feature:after {
    content: '';
    position: absolute;
    width: 250px;
    height: 250px;
    border-radius: 50%;
    right: -60px;
    bottom: -80px;
    background: #25B0AA;
    opacity: .16
}

.campaign-feature h3 {
    font-size: clamp(28px, 3vw, 43px);
    line-height: 1;
    letter-spacing: -2px;
    max-width: 530px;
    margin: 26px 0 17px;
    color: #154579
}

.campaign-feature>p {
    max-width: 470px;
    color: #154579;
    line-height: 1.65;
    font-size: 14px
}

.campaign-flow {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 40px;
    position: relative;
    z-index: 1;
    flex-wrap: wrap
}

.campaign-flow span,
.campaign-flow b {
    padding: 12px 15px;
    border-radius: 30px;
    background: #fff;
    color: #154579;
    font-size: 11px;
    box-shadow: 0 7px 15px rgba(21, 69, 121, .1)
}

.campaign-flow i {
    font-style: normal;
    color: #5c9d60;
    font-size: 20px
}

.campaign-flow b {
    background: #154579;
    color: #fff
}

.campaign-stat {
    position: absolute;
    right: 30px;
    top: 35px;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    color: #154579
}

.campaign-stat strong {
    font-size: 25px;
    color: #5c9d60
}

.campaign-stat small {
    font: 9px 'DM Mono'
}

@media(max-width:800px) {
    .campaign-section {
        width: calc(100% - 42px);
        grid-template-columns: 1fr;
        gap: 35px;
        padding: 70px 0
    }

    .campaign-feature {
        padding: 28px
    }

    .campaign-stat {
        position: static;
        align-items: flex-start;
        margin-top: 30px
    }

    .campaign-copy h2 {
        font-size: 54px
    }
}

@media(max-width:500px) {
    .campaign-section {
        margin-top: 45px
    }

    .campaign-flow {
        gap: 6px
    }

    .campaign-flow i {
        font-size: 15px
    }

    .campaign-flow span,
    .campaign-flow b {
        font-size: 9px;
        padding: 10px
    }
}


/* === campaign-clearance.css === */
.campaign-section {
    margin-top: 390px !important;
    position: relative;
    z-index: 2;
    clear: both
}

@media(max-width:800px) {
    .campaign-section {
        margin-top: 250px !important
    }
}

@media(max-width:500px) {
    .campaign-section {
        margin-top: 170px !important
    }
}


/* === campaign-rich.css === */
.advantage-metrics {
    display: flex;
    gap: 0;
    margin: 30px 0 27px
}

.advantage-metrics span {
    padding: 0 25px 0 0;
    margin-right: 25px;
    border-right: 1px solid rgba(21, 69, 121, .2)
}

.advantage-metrics span:last-child {
    border: 0
}

.advantage-metrics b {
    display: block;
    font-size: 22px;
    color: #154579
}

.advantage-metrics small {
    font: 9px 'DM Mono';
    color: #5c9d60;
    text-transform: uppercase
}

.campaign-feature {
    isolation: isolate
}

.campaign-glow {
    position: absolute;
    width: 330px;
    height: 330px;
    right: -85px;
    bottom: -120px;
    border-radius: 50%;
    background: radial-gradient(circle, #25B0AA 0 20%, transparent 69%);
    opacity: .25;
    z-index: -1;
    animation: campaignBreathe 5s ease-in-out infinite
}

.channel-badge {
    position: absolute;
    z-index: 3;
    background: #fff;
    color: #154579;
    border: 1px solid rgba(37, 176, 170, .3);
    border-radius: 30px;
    padding: 10px 14px;
    font-size: 10px;
    box-shadow: 0 10px 18px rgba(21, 69, 121, .12);
    animation: channelFloat 4s ease-in-out infinite
}

.badge-wa {
    right: 34px;
    top: 105px;
    color: #5c9d60
}

.badge-shop {
    right: 62px;
    bottom: 35px;
    animation-delay: -1.3s
}

.badge-analytics {
    left: 30px;
    bottom: 32px;
    animation-delay: -2.5s
}

@keyframes campaignBreathe {
    50% {
        transform: scale(1.13);
        opacity: .38
    }
}

@keyframes channelFloat {
    50% {
        transform: translateY(-8px)
    }
}

@media(max-width:800px) {
    .advantage-metrics {
        gap: 14px
    }

    .advantage-metrics span {
        padding-right: 12px;
        margin-right: 0
    }

    .channel-badge {
        transform: scale(.88)
    }
}


/* === campaign-redesign.css === */
.campaign-section {
    width: 100%;
    max-width: none;
    margin-top: 390px !important;
    padding: 105px max(40px, calc((100% - 1240px)/2)) 125px;
    display: block;
    background: #154579;
    color: #fff;
    position: relative;
    overflow: hidden
}

.campaign-section:before {
    content: 'CONVERSATION ENGINE';
    position: absolute;
    right: -55px;
    top: 105px;
    color: rgba(37, 176, 170, .2);
    font: 700 clamp(70px, 12vw, 180px) 'DM Sans';
    letter-spacing: -10px;
    transform: rotate(90deg);
    transform-origin: right top;
    white-space: nowrap
}

.campaign-copy {
    max-width: 1000px;
    margin: 0 auto 72px;
    text-align: center;
    position: relative;
    z-index: 1
}

.campaign-copy small {
    color: #5c9d60
}

.campaign-copy h2 {
    font-size: clamp(58px, 8vw, 120px);
    line-height: .82;
    letter-spacing: -7px;
    margin: 25px 0 28px;
    color: #fff
}

.campaign-copy h2 em {
    color: #25B0AA
}

.campaign-copy p {
    max-width: 560px;
    margin: 0 auto 28px;
    color: #d9eef0
}

.advantage-metrics {
    justify-content: center;
    margin: 32px 0
}

.advantage-metrics span {
    border-color: rgba(255, 255, 255, .25)
}

.advantage-metrics b {
    color: #fff
}

.advantage-metrics small {
    color: #5c9d60
}

.campaign-copy .primary-button {
    display: inline-flex
}

.campaign-feature {
    max-width: 1080px;
    margin: auto;
    min-height: 380px;
    border: 1px solid rgba(37, 176, 170, .55);
    border-radius: 30px;
    padding: 44px 48px;
    background: linear-gradient(135deg, #173f6f, #154579 55%, #12365f);
    box-shadow: 0 30px 70px rgba(5, 24, 52, .35);
    position: relative;
    z-index: 1
}

.campaign-feature:after {
    background: #25B0AA;
    opacity: .25
}

.campaign-feature h3 {
    max-width: 650px;
    color: #fff;
    font-size: clamp(31px, 4vw, 56px);
    letter-spacing: -3px;
    margin: 23px 0 15px
}

.campaign-feature>p {
    max-width: 560px;
    color: #d8eced
}

.campaign-flow {
    position: absolute;
    left: 48px;
    right: 48px;
    bottom: 42px;
    justify-content: space-between;
    flex-wrap: nowrap
}

.campaign-flow span,
.campaign-flow b {
    background: rgba(255, 255, 255, .1);
    border: 1px solid rgba(255, 255, 255, .25);
    color: #fff;
    box-shadow: none;
    white-space: nowrap
}

.campaign-flow b {
    background: #5c9d60;
    border-color: #5c9d60
}

.campaign-flow i {
    color: #25B0AA
}

.campaign-stat {
    right: 48px;
    top: 43px;
    color: #fff
}

.campaign-stat strong {
    font-size: 33px;
    color: #5c9d60
}

.channel-badge {
    background: #25B0AA;
    color: #154579;
    border: 0
}

.badge-wa {
    right: 30px;
    top: 135px
}

.badge-shop {
    right: 115px;
    bottom: 115px
}

.badge-analytics {
    left: auto;
    right: 30px;
    bottom: 35px
}

.campaign-glow {
    background: radial-gradient(circle, #25B0AA 0 10%, transparent 67%);
    opacity: .35
}

@media(max-width:800px) {
    .campaign-section {
        margin-top: 250px !important;
        padding: 75px 21px 90px
    }

    .campaign-copy {
        margin-bottom: 42px
    }

    .campaign-copy h2 {
        letter-spacing: -4px
    }

    .campaign-feature {
        padding: 30px 25px;
        min-height: 470px
    }

    .campaign-flow {
        left: 25px;
        right: 25px;
        bottom: 28px;
        gap: 5px;
        justify-content: flex-start;
        flex-wrap: wrap
    }

    .campaign-stat {
        position: static;
        align-items: flex-start;
        margin-top: 25px
    }

    .campaign-section:before {
        display: none
    }
}

@media(max-width:500px) {
    .campaign-section {
        margin-top: 170px !important
    }

    .campaign-feature h3 {
        font-size: 31px
    }

    .campaign-flow span,
    .campaign-flow b {
        font-size: 9px;
        padding: 9px 10px
    }

    .campaign-flow i {
        font-size: 14px
    }
}


/* === campaign-motion.css === */
.campaign-section {
    padding-top: 72px;
    padding-bottom: 82px;
    min-height: 0
}

.campaign-copy {
    margin-bottom: 42px
}

.campaign-copy h2 {
    font-size: clamp(48px, 6vw, 88px);
    margin: 18px 0 20px
}

.campaign-feature {
    min-height: 300px;
    transform: translate3d(calc(var(--mouse-x, 0) * 1px), calc(var(--mouse-y, 0) * 1px), 0);
    transition: transform .25s ease-out
}

.campaign-glow {
    transform: translate3d(calc(var(--mouse-x, 0) * -2px), calc(var(--mouse-y, 0) * -2px), 0);
    transition: transform .4s ease-out
}

.campaign-feature .channel-badge {
    transition: transform .5s cubic-bezier(.2, .8, .2, 1)
}

.campaign-section:hover .badge-wa {
    transform: translate(calc(var(--mouse-x, 0) * 2px), calc(var(--mouse-y, 0) * 2px))
}

.campaign-section:hover .badge-shop {
    transform: translate(calc(var(--mouse-x, 0) * -2px), calc(var(--mouse-y, 0) * -2px))
}

.campaign-section:hover .badge-analytics {
    transform: translate(calc(var(--mouse-x, 0) * 1px), calc(var(--mouse-y, 0) * -2px))
}

@media(max-width:800px) {
    .campaign-section {
        padding-top: 58px;
        padding-bottom: 65px
    }

    .campaign-copy {
        margin-bottom: 30px
    }

    .campaign-feature {
        min-height: 420px
    }
}

@media(prefers-reduced-motion:reduce) {

    .campaign-feature,
    .campaign-glow,
    .campaign-feature .channel-badge {
        transition: none !important;
        transform: none !important
    }
}


/* === campaign-layout-motion.css === */
@media(min-width:801px) {
    .campaign-section {
        padding-left: 40px;
        padding-right: 40px
    }

    .campaign-copy,
    .campaign-feature {
        width: calc(100% - 80px);
        max-width: none
    }

    .campaign-copy {
        margin-left: auto;
        margin-right: auto
    }

    .campaign-feature {
        margin-left: auto;
        margin-right: auto
    }
}

.campaign-copy h2 em br {
    display: none
}

.campaign-copy h2 {
    white-space: normal
}

.campaign-flow {
    animation: flowDrift 9s ease-in-out infinite
}

.campaign-flow span,
.campaign-flow b {
    animation: flowPulse 3s ease-in-out infinite
}

.campaign-flow span:nth-of-type(2) {
    animation-delay: -1s
}

.campaign-flow b {
    animation-delay: -2s
}

@keyframes flowDrift {

    0%,
    100% {
        transform: translateX(0)
    }

    50% {
        transform: translateX(12px)
    }
}

@keyframes flowPulse {

    0%,
    100% {
        box-shadow: 0 0 0 rgba(92, 157, 96, 0)
    }

    50% {
        box-shadow: 0 0 0 7px rgba(92, 157, 96, .14)
    }
}

@media(prefers-reduced-motion:reduce) {

    .campaign-flow,
    .campaign-flow span,
    .campaign-flow b {
        animation: none
    }
}


/* === campaign-cleanup.css === */
.campaign-feature {
    padding-bottom: 145px !important
}

.campaign-feature>p {
    margin-bottom: 0;
    max-width: 560px
}

.campaign-flow {
    left: 48px !important;
    right: 48px !important;
    bottom: 38px !important;
    top: auto !important;
    transform: none !important;
    animation: flowDrift 9s ease-in-out infinite;
    z-index: 4
}

.campaign-stat {
    right: 45px !important;
    top: 38px !important
}

.badge-wa {
    right: 30px !important;
    top: 128px !important
}

.badge-shop {
    right: 115px !important;
    bottom: 88px !important
}

.badge-analytics {
    right: 28px !important;
    bottom: 28px !important;
    left: auto !important
}

.campaign-feature h3 {
    max-width: 600px !important
}

.campaign-feature .campaign-glow {
    pointer-events: none
}

@media(max-width:800px) {
    .campaign-feature {
        padding-bottom: 175px !important
    }

    .campaign-flow {
        left: 25px !important;
        right: 25px !important;
        bottom: 28px !important
    }

    .campaign-stat {
        top: 28px !important;
        right: 25px !important
    }

    .badge-wa {
        top: 120px !important;
        right: 20px !important
    }

    .badge-shop {
        bottom: 100px !important;
        right: 90px !important
    }

    .badge-analytics {
        bottom: 38px !important;
        right: 20px !important
    }
}


/* === campaign-slider.css === */
.campaign-section {
    height: 520px !important;
    min-height: 0 !important;
    padding: 70px 40px !important;
    display: block !important;
    position: relative
}

.campaign-copy,
.campaign-feature {
    position: absolute;
    left: 40px;
    right: 40px;
    top: 70px;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    opacity: 0;
    visibility: hidden;
    transform: translateY(24px);
    transition: opacity .65s ease, transform .65s ease, visibility .65s
}

.campaign-copy {
    display: block !important;
    text-align: center
}

.campaign-copy h2 {
    font-size: clamp(48px, 6vw, 88px);
    margin: 20px 0
}

.campaign-copy p {
    margin-left: auto;
    margin-right: auto
}

.campaign-copy .advantage-metrics {
    justify-content: center
}

.campaign-feature {
    display: block !important;
    min-height: 330px !important;
    padding: 38px !important
}

.campaign-section:not(.slide-two) .campaign-copy,
.campaign-section.slide-two .campaign-feature {
    opacity: 1;
    visibility: visible;
    transform: translateY(0)
}

.campaign-section:not(.slide-two) .campaign-feature,
.campaign-section.slide-two .campaign-copy {
    pointer-events: none
}

.campaign-section.slide-two .campaign-feature {
    animation: slideEntry .8s ease both
}

.campaign-section.slide-two .campaign-copy {
    animation: none
}

.campaign-section:not(.slide-two) .campaign-copy {
    animation: slideEntry .8s ease both
}

.campaign-feature h3 {
    max-width: 700px !important;
    font-size: clamp(28px, 4vw, 52px) !important;
    line-height: 1.02 !important
}

.campaign-feature>p {
    max-width: 650px !important
}

.campaign-feature .campaign-flow {
    bottom: 30px !important
}

.campaign-dots {
    position: absolute;
    bottom: 28px;
    left: 50%;
    z-index: 8;
    transform: translateX(-50%);
    display: flex;
    gap: 7px
}

.campaign-dots i {
    width: 28px;
    height: 4px;
    border-radius: 5px;
    background: rgba(255, 255, 255, .35);
    transition: background .3s
}

.campaign-dots i.active {
    background: #5c9d60
}

@keyframes slideEntry {
    from {
        opacity: 0;
        transform: translateY(35px) scale(.98)
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1)
    }
}

@media(max-width:800px) {
    .campaign-section {
        height: 590px !important;
        padding: 55px 21px !important
    }

    .campaign-copy,
    .campaign-feature {
        left: 21px;
        right: 21px;
        top: 55px
    }

    .campaign-feature {
        min-height: 430px !important;
        padding: 28px !important
    }

    .campaign-dots {
        bottom: 22px
    }
}


/* === campaign-slide-match.css === */
.campaign-section.slide-two .campaign-feature {
    background: transparent;
    border: 0;
    box-shadow: none;
    border-radius: 0;
    min-height: 0 !important;
    padding: 0 !important;
    text-align: center
}

.campaign-section.slide-two .campaign-feature:after,
.campaign-section.slide-two .campaign-glow,
.campaign-section.slide-two .channel-badge {
    display: none
}

.campaign-section.slide-two .campaign-label {
    display: block
}

.campaign-section.slide-two .campaign-feature h3 {
    max-width: 850px !important;
    margin: 25px auto 20px;
    font-size: clamp(48px, 6vw, 88px) !important;
    line-height: .92 !important;
    letter-spacing: -4px
}

.campaign-section.slide-two .campaign-feature>p {
    max-width: 620px !important;
    margin: 0 auto;
    color: #d9eef0
}

.campaign-section.slide-two .campaign-flow {
    display: none
}

.campaign-section.slide-two .campaign-stat {
    position: static;
    display: flex;
    align-items: center;
    margin: 30px auto 0
}

.campaign-section.slide-two .campaign-stat strong {
    font-size: 30px
}

.campaign-section.slide-two .campaign-stat small {
    color: #5c9d60
}

.campaign-section.slide-two .campaign-feature:before {
    content: 'Launch personalized broadcasts. Automate follow-ups. Grow your Shopify store.';
    display: block;
    position: absolute;
    left: 50%;
    bottom: 78px;
    transform: translateX(-50%);
    color: #25B0AA;
    font: 10px 'DM Mono';
    letter-spacing: 1px;
    white-space: nowrap
}

@media(max-width:800px) {
    .campaign-section.slide-two .campaign-feature h3 {
        font-size: clamp(38px, 10vw, 60px) !important
    }

    .campaign-section.slide-two .campaign-feature:before {
        bottom: 72px;
        white-space: normal;
        width: 90%
    }
}


/* === campaign-scroll-animation.css === */
.campaign-section.is-inview:not(.slide-two) .campaign-copy {
    animation: slideEntry .85s cubic-bezier(.16, 1, .3, 1) both
}

.campaign-section.is-inview.slide-two .campaign-feature {
    animation: slideEntry .85s cubic-bezier(.16, 1, .3, 1) both
}

.campaign-section:not(.is-inview) .campaign-copy,
.campaign-section:not(.is-inview) .campaign-feature {
    animation: none
}


/* === campaign-slide-fix.css === */
.campaign-section.slide-two .campaign-feature {
    top: 70px !important;
    min-height: 0 !important;
    padding: 0 30px !important
}

.campaign-section.slide-two .campaign-feature h3 {
    font-size: clamp(38px, 5vw, 70px) !important;
    line-height: .94 !important;
    max-width: 1050px !important;
    margin: 22px auto 24px !important;
    letter-spacing: -3px !important
}

.campaign-section.slide-two .campaign-feature>p {
    font-size: 14px;
    line-height: 1.55;
    max-width: 650px !important;
    margin: 0 auto !important
}

.campaign-section.slide-two .campaign-feature:before {
    bottom: -75px !important
}

.campaign-section.slide-two .campaign-label {
    font-size: 10px
}

.campaign-section.slide-two .campaign-stat {
    display: none !important
}

@media(max-width:800px) {
    .campaign-section.slide-two .campaign-feature {
        padding: 0 10px !important
    }

    .campaign-section.slide-two .campaign-feature h3 {
        font-size: clamp(34px, 9vw, 58px) !important
    }
}


/* === hide-scroll-hint.css === */
.scroll-hint {
    display: none !important
}


/* === campaign-heading-color.css === */
.campaign-feature h3 em {
    color: #5c9d60;
    font-style: normal;
    font-weight: 700
}

.campaign-section.slide-two .campaign-feature h3 em {
    color: #5c9d60
}


/* === campaign-button-hide.css === */
.campaign-copy>.primary-button {
    display: none !important
}


/* === campaign-character.css === */
.campaign-character {
    position: absolute;
    z-index: 5;
    width: 180px;
    right: 4%;
    bottom: -8px;
    opacity: 0;
    transform: translateY(70px) rotate(5deg);
    filter: drop-shadow(0 18px 10px rgba(5, 24, 52, .3));
    transition: opacity .9s ease .15s, transform 1s cubic-bezier(.16, 1, .3, 1) .15s;
    pointer-events: none
}

.campaign-section.is-inview .campaign-character {
    opacity: 1;
    transform: translateY(0) rotate(2deg)
}

@media(max-width:800px) {
    .campaign-character {
        width: 125px;
        right: 2%;
        bottom: -3px
    }
}

@media(prefers-reduced-motion:reduce) {
    .campaign-character {
        transition: none
    }
}


/* === campaign-space-fix.css === */
.campaign-section {
    height: 420px !important;
    padding-top: 58px !important;
    padding-bottom: 48px !important
}

.campaign-copy,
.campaign-feature {
    top: 58px !important
}

.campaign-dots {
    bottom: 20px !important
}

.campaign-copy p {
    margin-bottom: 0 !important
}

.campaign-section.slide-two .campaign-feature:before {
    bottom: -55px !important
}

@media(max-width:800px) {
    .campaign-section {
        height: 470px !important;
        padding-top: 48px !important
    }

    .campaign-copy,
    .campaign-feature {
        top: 48px !important
    }
}


/* === campaign-em-style.css === */
.campaign-feature h3 em {
    font-family: Georgia, 'Times New Roman', serif !important;
    font-style: italic !important;
    font-weight: 400 !important;
    letter-spacing: -3px !important;
    color: #25B0AA !important
}

.campaign-section.slide-two .campaign-feature h3 em {
    font-family: Georgia, 'Times New Roman', serif !important;
    font-style: italic !important;
    font-weight: 400 !important;
    color: #25B0AA !important
}


/* === services-whatsapp.css === */
.wa-services {
    --wa-green: #25d366;
    --wa-green-2: #128c7e;
    --wa-deep: #075e54;
    --wa-ink: #0d3b36;
    --wa-panel: #0f1f1e;
    --wa-line: rgba(13, 59, 54, .1);
    position: relative;
    padding: 112px 40px 130px;
    background: linear-gradient(180deg, #f5fbff 0%, #eef9f3 42%, #f6fcf8 100%);
    overflow: hidden;
    isolation: isolate
}

.wa-services:before {
    content: '';
    position: absolute;
    inset: -12% -4% -4%;
    z-index: -2;
    background: radial-gradient(520px 420px at 12% 4%, rgba(37, 211, 102, .22), transparent 70%), radial-gradient(660px 500px at 88% 18%, rgba(37, 176, 170, .17), transparent 72%), radial-gradient(900px 620px at 50% 112%, rgba(92, 157, 96, .16), transparent 70%);
    animation: waAurora 18s ease-in-out infinite alternate
}

.wa-services:after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    opacity: .55;
    background-image: linear-gradient(rgba(13, 59, 54, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(13, 59, 54, .045) 1px, transparent 1px);
    background-size: 58px 58px;
    -webkit-mask-image: radial-gradient(circle at 50% 24%, #000 0, transparent 76%);
    mask-image: radial-gradient(circle at 50% 24%, #000 0, transparent 76%)
}

@keyframes waAurora {
    50% {
        transform: scale(1.07) translateY(-16px)
    }
}

.wa-services-head {
    width: min(1240px, 100%);
    margin: 0 auto 52px;
    position: relative;
    z-index: 2
}

.wa-kicker {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    font: 600 10px/1 'DM Sans', Arial, sans-serif;
    letter-spacing: 1.7px;
    text-transform: uppercase;
    color: var(--wa-green-2)
}

.wa-kicker i {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--wa-green);
    animation: waLive 2.4s ease-out infinite
}

@keyframes waLive {
    0% {
        box-shadow: 0 0 0 0 rgba(37, 211, 102, .55)
    }

    70%,
    100% {
        box-shadow: 0 0 0 13px rgba(37, 211, 102, 0)
    }
}

.wa-services-head h2 {
    font-size: clamp(40px, 6vw, 84px);
    line-height: .9;
    letter-spacing: -4.5px;
    font-weight: 800;
    color: var(--wa-deep);
    margin: 18px 0 0
}

.wa-services-head h2 em {
    font-family: Georgia, serif;
    font-weight: 400;
    font-style: italic;
    letter-spacing: -3px;
    color: var(--wa-green)
}

.wa-grid {
    width: min(1240px, 100%);
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 22px;
    position: relative;
    z-index: 2
}

.wa-grid .wa-card:nth-child(1) {
    --i: 0
}

.wa-grid .wa-card:nth-child(2) {
    --i: 1
}

.wa-grid .wa-card:nth-child(3) {
    --i: 2
}

.wa-grid .wa-card:nth-child(4) {
    --i: 3
}

.wa-grid .wa-card:nth-child(5) {
    --i: 4
}

.wa-card {
    position: relative;
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid var(--wa-line);
    border-radius: 22px;
    overflow: hidden;
    isolation: isolate;
    box-shadow: 0 18px 34px rgba(13, 59, 54, .08);
    opacity: 0;
    transform: translateY(30px);
    transition: transform .55s cubic-bezier(.16, 1, .3, 1), box-shadow .55s ease, border-color .4s ease
}

.wa-services.is-ready .wa-card {
    animation: waCardIn .85s cubic-bezier(.16, 1, .3, 1) forwards;
    animation-delay: calc(var(--i, 0) * 90ms)
}

@keyframes waCardIn {
    to {
        opacity: 1;
        transform: none
    }
}

.wa-card:before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 4;
    pointer-events: none;
    opacity: 0;
    transition: opacity .45s ease;
    background: radial-gradient(260px 260px at var(--mx, 50%) var(--my, 0%), rgba(37, 211, 102, .16), transparent 70%)
}

.wa-card:hover:before {
    opacity: 1
}

.wa-card:after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 3px;
    z-index: 5;
    background: linear-gradient(90deg, var(--wa-green), var(--wa-green-2));
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .6s cubic-bezier(.16, 1, .3, 1)
}

.wa-card:hover:after {
    transform: scaleX(1)
}

.wa-card:hover {
    transform: translateY(-8px);
    border-color: rgba(37, 211, 102, .45);
    box-shadow: 0 30px 52px rgba(13, 59, 54, .17)
}

.wa-media {
    position: relative;
    overflow: hidden;
    flex: none;
    aspect-ratio: 16/10;
    background: var(--wa-panel)
}

.wa-media:after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: linear-gradient(180deg, rgba(9, 32, 29, .34) 0, rgba(9, 32, 29, 0) 36%, rgba(9, 32, 29, .24) 100%)
}

.wa-shot {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transform: scale(1.02);
    transition: transform 1.1s cubic-bezier(.16, 1, .3, 1)
}

.wa-glyph {
    position: absolute;
    right: 20px;
    top: 20px;
    z-index: 2;
    width: 54px;
    height: 54px;
    border-radius: 17px;
    background: #fff;
    display: grid;
    place-items: center;
    box-shadow: 0 12px 24px rgba(4, 32, 28, .28);
    animation: waFloat 5.5s ease-in-out infinite
}

.wa-glyph img {
    width: 32px;
    height: 32px;
    display: block
}

.wa-glyph:after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 17px;
    border: 1.5px solid rgba(37, 211, 102, .65);
    animation: waRing 2.8s ease-out infinite
}

@keyframes waFloat {
    50% {
        transform: translateY(-7px)
    }
}

@keyframes waRing {
    0% {
        transform: scale(1);
        opacity: .85
    }

    100% {
        transform: scale(1.6);
        opacity: 0
    }
}

.wa-pill {
    position: absolute;
    left: 20px;
    top: 20px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 12px;
    border-radius: 30px;
    background: rgba(9, 32, 29, .66);
    border: 1px solid rgba(255, 255, 255, .18);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    animation: waFloat 6s ease-in-out infinite
}

.wa-pill i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--wa-green);
    animation: waBlink 1.7s ease-in-out infinite
}

.wa-pill span {
    height: 5px;
    border-radius: 4px;
    background: rgba(255, 255, 255, .55)
}

.wa-pill span:nth-child(2) {
    width: 26px
}

.wa-pill span:nth-child(3) {
    width: 14px
}

.wa-pill span:nth-child(4) {
    width: 20px
}

@keyframes waBlink {
    50% {
        opacity: .25;
        transform: scale(.72)
    }
}

.wa-chat {
    position: absolute;
    left: 24px;
    bottom: 26px;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 9px;
    pointer-events: none
}

.wa-bubble {
    height: 27px;
    border-radius: 15px;
    background: rgba(255, 255, 255, .95);
    box-shadow: 0 10px 20px rgba(4, 32, 28, .3);
    opacity: 0;
    animation: waBubble 5s cubic-bezier(.16, 1, .3, 1) infinite
}

.wa-bubble--1 {
    width: 124px;
    animation-delay: .15s
}

.wa-bubble--2 {
    width: 88px;
    animation-delay: .55s
}

.wa-bubble--3 {
    width: 140px;
    background: var(--wa-green);
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding-right: 12px;
    animation-delay: .95s
}

@keyframes waBubble {
    0% {
        opacity: 0;
        transform: translateY(12px) scale(.93)
    }

    11% {
        opacity: 1;
        transform: none
    }

    76% {
        opacity: 1;
        transform: none
    }

    92%,
    100% {
        opacity: 0;
        transform: translateY(-8px) scale(.98)
    }
}

.wa-ticks {
    display: flex;
    gap: 3px
}

.wa-ticks span {
    width: 10px;
    height: 6px;
    border-left: 2px solid #fff;
    border-bottom: 2px solid #fff;
    transform: rotate(-45deg) scale(.55);
    opacity: .3;
    animation: waTick 2.6s ease-in-out infinite
}

.wa-ticks span:last-child {
    animation-delay: .26s
}

@keyframes waTick {

    0%,
    30% {
        opacity: .3;
        transform: rotate(-45deg) scale(.55)
    }

    75%,
    100% {
        opacity: 1;
        transform: rotate(-45deg) scale(1)
    }
}

.wa-typing {
    position: absolute;
    right: 24px;
    bottom: 30px;
    z-index: 2;
    display: flex;
    gap: 5px;
    padding: 12px 15px;
    border-radius: 16px;
    background: rgba(255, 255, 255, .95);
    box-shadow: 0 10px 20px rgba(4, 32, 28, .3);
    animation: waFloat 4.5s ease-in-out infinite
}

.wa-typing i {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--wa-green-2);
    animation: waDots 1.25s ease-in-out infinite
}

.wa-typing i:nth-child(2) {
    animation-delay: .15s
}

.wa-typing i:nth-child(3) {
    animation-delay: .3s
}

@keyframes waDots {

    0%,
    60%,
    100% {
        transform: translateY(0);
        opacity: .45
    }

    30% {
        transform: translateY(-5px);
        opacity: 1
    }
}

.wa-alerts {
    position: absolute;
    left: 18px;
    right: 18px;
    bottom: 20px;
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: 8px
}

.wa-alerts span {
    height: 22px;
    border-radius: 12px;
    background: linear-gradient(90deg, rgba(255, 255, 255, .96), rgba(255, 255, 255, .76));
    box-shadow: 0 9px 18px rgba(4, 32, 28, .26);
    opacity: 0;
    animation: waAlert 4.4s cubic-bezier(.16, 1, .3, 1) infinite
}

.wa-alerts span:nth-child(1) {
    width: 72%;
    animation-delay: .1s
}

.wa-alerts span:nth-child(2) {
    width: 88%;
    animation-delay: .42s
}

.wa-alerts span:nth-child(3) {
    width: 58%;
    background: linear-gradient(90deg, var(--wa-green), #4be08a);
    animation-delay: .74s
}

@keyframes waAlert {
    0% {
        opacity: 0;
        transform: translateX(-16px)
    }

    14% {
        opacity: 1;
        transform: none
    }

    74% {
        opacity: 1;
        transform: none
    }

    90%,
    100% {
        opacity: 0;
        transform: translateX(14px)
    }
}

.wa-signal {
    position: absolute;
    right: 20px;
    top: 20px;
    z-index: 2;
    width: 13px;
    height: 13px;
    border-radius: 50%;
    background: var(--wa-green);
    animation: waSignal 2.2s ease-out infinite
}

@keyframes waSignal {
    0% {
        box-shadow: 0 0 0 0 rgba(37, 211, 102, .6)
    }

    100% {
        box-shadow: 0 0 0 16px rgba(37, 211, 102, 0)
    }
}

.wa-tiles {
    position: absolute;
    left: 16px;
    right: 16px;
    bottom: 20px;
    z-index: 2;
    display: flex;
    gap: 9px
}

.wa-tiles>span {
    flex: 1;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 8px;
    border-radius: 12px;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 10px 20px rgba(4, 32, 28, .28);
    animation: waTile 5s ease-in-out infinite
}

.wa-tiles>span:nth-child(2) {
    animation-delay: .35s
}

.wa-tiles i {
    display: block;
    border-radius: 5px;
    background: rgba(18, 140, 126, .16)
}

.wa-tiles i:first-child {
    height: 30px;
    background: linear-gradient(120deg, rgba(37, 211, 102, .4), rgba(18, 140, 126, .3))
}

.wa-tiles i:nth-child(2) {
    height: 6px;
    width: 86%
}

.wa-tiles i:nth-child(3) {
    height: 6px;
    width: 58%
}

.wa-tiles>span:after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(105deg, transparent 30%, rgba(255, 255, 255, .85) 50%, transparent 70%);
    transform: translateX(-120%);
    animation: waShimmer 3.4s ease-in-out infinite
}

@keyframes waShimmer {
    0% {
        transform: translateX(-120%)
    }

    55%,
    100% {
        transform: translateX(120%)
    }
}

@keyframes waTile {

    0%,
    100% {
        transform: translateY(0)
    }

    50% {
        transform: translateY(-9px)
    }
}

.wa-dots {
    position: absolute;
    left: 50%;
    bottom: 7px;
    z-index: 3;
    transform: translateX(-50%);
    display: flex;
    gap: 5px
}

.wa-dots i {
    width: 12px;
    height: 3px;
    border-radius: 3px;
    background: rgba(255, 255, 255, .45)
}

.wa-dots i.on {
    width: 20px;
    background: var(--wa-green);
    animation: waDotSlide 4s ease-in-out infinite
}

@keyframes waDotSlide {

    0%,
    100% {
        transform: translateX(-7px)
    }

    50% {
        transform: translateX(7px)
    }
}

.wa-card:hover .wa-shot {
    transform: scale(1.08)
}

.wa-body {
    padding: 24px 22px 26px;
    display: flex;
    flex-direction: column;
    gap: 9px;
    flex: 1
}

.wa-body h3 {
    margin: 0;
    font-size: 19px;
    line-height: 1.2;
    font-weight: 700;
    letter-spacing: -.5px;
    color: var(--wa-ink)
}

.wa-body p {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.62;
    color: #4d6864
}

.wa-card--web {
    grid-column: 1/-1;
    display: grid;
    grid-template-columns: 1fr 1.08fr;
    align-items: stretch
}

.wa-card--web .wa-media {
    grid-column: 2;
    grid-row: 1;
    aspect-ratio: auto;
    min-height: 390px
}

.wa-card--web .wa-body {
    grid-column: 1;
    grid-row: 1;
    padding: 56px 54px;
    justify-content: center;
    gap: 16px
}

.wa-card--web .wa-body h3 {
    font-size: clamp(30px, 3.6vw, 46px);
    letter-spacing: -2px
}

.wa-card--web .wa-body p {
    font-size: 15.5px;
    line-height: 1.6;
    max-width: 430px
}

.wa-eq {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 22px;
    z-index: 2;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 6px;
    height: 56px
}

.wa-eq i {
    width: 7px;
    border-radius: 6px;
    background: linear-gradient(180deg, #5af08a, var(--wa-green-2));
    box-shadow: 0 6px 14px rgba(4, 32, 28, .3);
    animation: waEq 1.15s ease-in-out infinite
}

.wa-eq i:nth-child(1) {
    height: 22px
}

.wa-eq i:nth-child(2) {
    height: 42px;
    animation-delay: .12s
}

.wa-eq i:nth-child(3) {
    height: 30px;
    animation-delay: .24s
}

.wa-eq i:nth-child(4) {
    height: 50px;
    animation-delay: .36s
}

.wa-eq i:nth-child(5) {
    height: 26px;
    animation-delay: .48s
}

@keyframes waEq {

    0%,
    100% {
        transform: scaleY(.55)
    }

    50% {
        transform: scaleY(1.15)
    }
}

.wa-ring {
    position: absolute;
    right: 22px;
    top: 22px;
    z-index: 2;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #fff;
    display: grid;
    place-items: center;
    box-shadow: 0 10px 20px rgba(4, 32, 28, .26)
}

.wa-ring i {
    width: 12px;
    height: 12px;
    border-radius: 3px;
    background: var(--wa-green-2);
    animation: waBlink 1.4s ease-in-out infinite
}

.wa-ring:after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 1.5px solid rgba(37, 211, 102, .7);
    animation: waRing 2.4s ease-out infinite
}

.wa-plane {
    position: absolute;
    left: -14%;
    top: 26%;
    z-index: 2;
    width: 34px;
    height: 34px;
    fill: #fff;
    filter: drop-shadow(0 8px 16px rgba(4, 32, 28, .4));
    opacity: 0;
    animation: waPlane 4.6s cubic-bezier(.45, 0, .45, 1) infinite
}

@keyframes waPlane {
    0% {
        left: -14%;
        transform: translateY(8px) rotate(10deg);
        opacity: 0
    }

    18% {
        opacity: 1
    }

    68% {
        opacity: 1
    }

    100% {
        left: 104%;
        transform: translateY(-12px) rotate(-8deg);
        opacity: 0
    }
}

.wa-check {
    position: absolute;
    right: 20px;
    bottom: 22px;
    z-index: 2;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--wa-green);
    box-shadow: 0 10px 22px rgba(4, 32, 28, .32);
    animation: waPop 4.6s cubic-bezier(.16, 1, .3, 1) infinite
}

.wa-check:after {
    content: '';
    position: absolute;
    left: 11px;
    top: 9px;
    width: 13px;
    height: 7px;
    border-left: 2.5px solid #fff;
    border-bottom: 2.5px solid #fff;
    transform: rotate(-45deg)
}

@keyframes waPop {
    0% {
        opacity: 0;
        transform: scale(.4)
    }

    14% {
        opacity: 1;
        transform: scale(1.08)
    }

    22%,
    78% {
        opacity: 1;
        transform: scale(1)
    }

    92%,
    100% {
        opacity: 0;
        transform: scale(.7)
    }
}

@media(max-width:1180px) {
    .wa-card--web .wa-body {
        padding: 44px 40px
    }
}

@media(max-width:1024px) {
    .wa-grid {
        grid-template-columns: repeat(2, 1fr)
    }

    .wa-card--web {
        grid-template-columns: 1fr
    }

    .wa-card--web .wa-media {
        grid-column: 1;
        grid-row: 1;
        aspect-ratio: 16/9;
        min-height: 0
    }

    .wa-card--web .wa-body {
        grid-column: 1;
        grid-row: 2;
        padding: 34px 30px 38px;
        gap: 12px
    }
}

@media(max-width:800px) {
    .wa-services {
        padding: 88px 21px 100px
    }

    .wa-grid {
        gap: 18px
    }

    .wa-media {
        aspect-ratio: 16/11
    }

    .wa-services-head {
        margin-bottom: 40px
    }

    .wa-services-head h2 {
        letter-spacing: -3px
    }
}

@media(max-width:640px) {
    .wa-grid {
        grid-template-columns: 1fr
    }

    .wa-body {
        padding: 20px 18px 24px
    }

    .wa-card--web .wa-body {
        padding: 26px 22px 30px
    }

    .wa-chat {
        left: 18px;
        bottom: 18px
    }

    .wa-typing {
        right: 18px;
        bottom: 20px
    }

    .wa-glyph {
        right: 16px;
        top: 16px;
        width: 48px;
        height: 48px
    }

    .wa-glyph img {
        width: 28px;
        height: 28px
    }

    .wa-pill {
        left: 16px;
        top: 16px
    }
}

@media(prefers-reduced-motion:reduce) {

    .wa-services:before,
    .wa-glyph,
    .wa-glyph:after,
    .wa-pill,
    .wa-pill i,
    .wa-bubble,
    .wa-ticks span,
    .wa-typing,
    .wa-typing i,
    .wa-alerts span,
    .wa-signal,
    .wa-tiles>span,
    .wa-dots i.on,
    .wa-eq i,
    .wa-ring i,
    .wa-ring:after,
    .wa-plane,
    .wa-check,
    .wa-kicker i,
    .wa-card {
        animation: none !important;
        transform: none !important;
        opacity: 1 !important
    }

    .wa-card {
        opacity: 1 !important
    }

    .wa-tiles>span:after {
        opacity: 0 !important
    }

    .wa-shot {
        transform: none !important
    }

    .wa-card:after {
        transform: none !important;
        opacity: 0 !important
    }
}


/* === character-hero-entry.css === */
.campaign-character {
    opacity: 0 !important;
    transform: translate3d(90px, -360px, 0) rotate(-14deg) scale(.55) !important;
    transform-origin: center bottom;
    transition: opacity .8s ease, transform 1.25s cubic-bezier(.16, 1, .3, 1) !important
}

.campaign-section.is-inview .campaign-character {
    opacity: 1 !important;
    transform: translate3d(0, 0, 0) rotate(2deg) scale(1) !important
}

@media(max-width:800px) {
    .campaign-character {
        transform: translate3d(35px, -240px, 0) rotate(-12deg) scale(.5) !important
    }

    .campaign-section.is-inview .campaign-character {
        transform: translate3d(0, 0, 0) rotate(2deg) scale(1) !important
    }
}

@media(prefers-reduced-motion:reduce) {

    .campaign-character,
    .campaign-section.is-inview .campaign-character {
        transition: none !important;
        transform: none !important;
        opacity: 1 !important
    }
}


/* === character-size.css === */
.campaign-character {
    width: 330px !important;
    right: -10px !important;
    bottom: -18px !important
}

.campaign-section.is-inview .campaign-character {
    transform: translate3d(0, 0, 0) rotate(2deg) scale(1) !important
}

@media(max-width:800px) {
    .campaign-character {
        width: 230px !important;
        right: -8px !important;
        bottom: -10px !important
    }
}

@media(max-width:500px) {
    .campaign-character {
        width: 175px !important
    }
}


/* === character-size-large.css === */
.campaign-character {
    width: 450px !important;
    right: -25px !important;
    bottom: -25px !important
}

@media(max-width:800px) {
    .campaign-character {
        width: 300px !important;
        right: -15px !important
    }
}

@media(max-width:500px) {
    .campaign-character {
        width: 220px !important;
        right: -10px !important
    }
}


/* === character-final.css === */
.campaign-character {
    width: 369px !important;
    right: -15px !important;
    bottom: -6px !important
}

.visual-wrap .character {
    animation: heroCharacterDrop 1.5s cubic-bezier(.16, 1, .3, 1) both
}

.visual-wrap .character-left {
    animation-delay: .25s
}

.visual-wrap .character-right {
    animation-delay: .45s
}

@keyframes heroCharacterDrop {
    0% {
        opacity: 0;
        transform: translateY(-150px) rotate(-8deg) scale(.8)
    }

    70% {
        opacity: 1;
        transform: translateY(12px) rotate(3deg) scale(1.03)
    }

    100% {
        opacity: 1;
        transform: translateY(0) rotate(-5deg) scale(1)
    }
}

.character-right {
    animation-name: heroCharacterDropRight !important
}

@keyframes heroCharacterDropRight {
    0% {
        opacity: 0;
        transform: translateY(-150px) scaleX(-1) rotate(-8deg) scale(.8)
    }

    70% {
        opacity: 1;
        transform: translateY(12px) scaleX(-1) rotate(3deg) scale(1.03)
    }

    100% {
        opacity: 1;
        transform: translateY(0) scaleX(-1) rotate(-5deg) scale(1)
    }
}

@media(prefers-reduced-motion:reduce) {
    .visual-wrap .character {
        animation: none !important;
        opacity: 1 !important
    }
}


/* Everything section css */
/* =========================================================
   RESET
========================================================= */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: Inter, Arial, Helvetica, sans-serif;
    background: #ffffff;
    color: #172f68;
}


/* =========================================================
   MAIN SECTION
========================================================= */

.linksy-services {
    position: relative;
    min-height: 52vh;
    padding: 32px 0 42px;
    overflow: hidden;
    background: #f8fafc;
}


/* =========================================================
   DYNAMIC BACKGROUND
========================================================= */

.communication-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
    pointer-events: none;

    transition:
        background .8s ease;
}


/* Large atmospheric glow */

.communication-bg::before {
    content: "";

    position: absolute;

    width: 700px;
    height: 700px;

    left: 50%;
    top: 50%;

    transform:
        translate(-50%, -50%);

    border-radius: 50%;

    filter: blur(70px);

    opacity: .75;

    transition:
        background .8s ease,
        opacity .8s ease;
}


/* =========================================================
   WHATSAPP BACKGROUND
========================================================= */

.communication-bg.whatsapp {
    background:
        linear-gradient(135deg,
            #f3fbf6 0%,
            #eaf8ef 45%,
            #f9fcfa 100%);
}

.communication-bg.whatsapp::before {
    background:
        radial-gradient(circle,
            rgba(37, 211, 102, .28) 0%,
            rgba(37, 211, 102, .14) 32%,
            rgba(37, 211, 102, .03) 62%,
            transparent 75%);
}


/* =========================================================
   SMS BACKGROUND
========================================================= */

.communication-bg.sms {
    background:
        linear-gradient(135deg,
            #f3f6fc 0%,
            #e9f0fa 45%,
            #fafcff 100%);
}

.communication-bg.sms::before {
    background:
        radial-gradient(circle,
            rgba(66, 103, 169, .28) 0%,
            rgba(66, 103, 169, .14) 32%,
            rgba(66, 103, 169, .03) 62%,
            transparent 75%);
}


/* =========================================================
   RCS BACKGROUND
========================================================= */

.communication-bg.rcs {
    background:
        linear-gradient(135deg,
            #f2f7fd 0%,
            #e6f0fc 45%,
            #fbfdff 100%);
}

.communication-bg.rcs::before {
    background:
        radial-gradient(circle,
            rgba(71, 118, 190, .30) 0%,
            rgba(71, 118, 190, .14) 32%,
            rgba(71, 118, 190, .03) 62%,
            transparent 75%);
}


/* =========================================================
   VOICE BACKGROUND
========================================================= */

.communication-bg.voice {
    background:
        linear-gradient(135deg,
            #eff3f8 0%,
            #e3e9f2 45%,
            #fafbfd 100%);
}

.communication-bg.voice::before {
    background:
        radial-gradient(circle,
            rgba(35, 57, 91, .26) 0%,
            rgba(35, 57, 91, .13) 32%,
            rgba(35, 57, 91, .03) 62%,
            transparent 75%);
}


/* =========================================================
   BACKGROUND VISUALS
========================================================= */

.bg-visual {
    position: absolute;
    inset: -10%;

    opacity: 0;
    visibility: hidden;

    transform:
        scale(1.08);

    transition:
        opacity .8s ease,
        transform 1.2s ease,
        visibility .8s ease;
}

.bg-visual.active {
    opacity: 1;
    visibility: visible;

    transform:
        scale(1);
}


/* =========================================================
   WHATSAPP BACKGROUND VISUAL
========================================================= */

.bg-whatsapp {

    background:

        radial-gradient(circle at 10% 20%,
            rgba(37, 211, 102, .15),
            transparent 20%),

        radial-gradient(circle at 90% 75%,
            rgba(37, 211, 102, .13),
            transparent 23%),

        linear-gradient(135deg,
            transparent 0 46%,
            rgba(37, 211, 102, .045) 46% 47%,
            transparent 47% 100%);

    background-size:
        auto,
        auto,
        100px 100px;
}

.bg-whatsapp::before,
.bg-whatsapp::after {

    content: "";

    position: absolute;

    border-radius: 25px;

    border:
        1px solid rgba(37, 211, 102, .12);

    background:
        rgba(255, 255, 255, .25);

    box-shadow:
        0 20px 60px rgba(37, 211, 102, .04);
}

.bg-whatsapp::before {

    width: 270px;
    height: 105px;

    left: 7%;
    top: 28%;

    transform:
        rotate(-8deg);
}

.bg-whatsapp::after {

    width: 220px;
    height: 90px;

    right: 7%;
    bottom: 25%;

    transform:
        rotate(7deg);
}


/* =========================================================
   SMS BACKGROUND VISUAL
========================================================= */

.bg-sms {

    background:

        linear-gradient(90deg,
            transparent 49.5%,
            rgba(66, 103, 169, .07) 50%,
            transparent 50.5%),

        linear-gradient(0deg,
            transparent 49.5%,
            rgba(66, 103, 169, .07) 50%,
            transparent 50.5%),

        radial-gradient(circle at 15% 75%,
            rgba(66, 103, 169, .15),
            transparent 20%),

        radial-gradient(circle at 85% 25%,
            rgba(66, 103, 169, .15),
            transparent 20%);

    background-size:
        80px 80px,
        80px 80px,
        auto,
        auto;
}

.bg-sms::before,
.bg-sms::after {

    content: "";

    position: absolute;

    border-radius: 22px;

    background:
        rgba(255, 255, 255, .42);

    border:
        1px solid rgba(66, 103, 169, .12);

    box-shadow:
        0 20px 50px rgba(66, 103, 169, .05);
}

.bg-sms::before {

    width: 250px;
    height: 90px;

    left: 5%;
    top: 25%;
}

.bg-sms::after {

    width: 220px;
    height: 80px;

    right: 5%;
    bottom: 25%;
}


/* =========================================================
   RCS BACKGROUND VISUAL
========================================================= */

.bg-rcs {

    background:

        radial-gradient(ellipse at 15% 25%,
            rgba(74, 128, 202, .17),
            transparent 25%),

        radial-gradient(ellipse at 85% 75%,
            rgba(82, 137, 215, .15),
            transparent 27%);
}

.bg-rcs::before,
.bg-rcs::after {

    content: "";

    position: absolute;

    border-radius: 28px;

    border:
        1px solid rgba(71, 118, 181, .14);

    background:
        rgba(255, 255, 255, .34);

    box-shadow:
        0 25px 60px rgba(71, 118, 181, .05);
}

.bg-rcs::before {

    width: 290px;
    height: 150px;

    left: 5%;
    top: 20%;

    transform:
        rotate(-6deg);
}

.bg-rcs::after {

    width: 260px;
    height: 130px;

    right: 5%;
    bottom: 20%;

    transform:
        rotate(7deg);
}


/* =========================================================
   VOICE BACKGROUND VISUAL
========================================================= */

.bg-voice {

    background:

        repeating-radial-gradient(ellipse at center,
            rgba(40, 63, 98, .065) 0,
            rgba(40, 63, 98, .065) 1px,
            transparent 2px,
            transparent 38px),

        radial-gradient(circle at center,
            rgba(54, 82, 126, .15),
            transparent 52%);
}

.bg-voice::before {

    content: "";

    position: absolute;

    left: 50%;
    top: 50%;

    width: 620px;
    height: 190px;

    transform:
        translate(-50%, -50%);

    border-top:
        1px solid rgba(47, 72, 112, .10);

    border-bottom:
        1px solid rgba(47, 72, 112, .10);

    border-radius:
        50%;
}


/* =========================================================
   CONTAINER
========================================================= */

.services-container {

    width:
        min(1180px, calc(100% - 40px));

    margin:
        auto;

    position:
        relative;

    z-index:
        5;
}


/* =========================================================
   HEADING
========================================================= */

.services-heading {

    max-width:
        1100px;

    margin:
        0 auto 20px;

    text-align:
        center;

    position:
        relative;

    z-index:
        10;

    opacity:
        0;

    transform:
        translateY(20px);

    transition:
        opacity .8s ease,
        transform .8s ease;
}

.services-heading.visible {

    opacity:
        1;

    transform:
        translateY(0);
}

.eyebrow {

    display:
        inline-flex;

    align-items:
        center;

    gap:
        8px;

    font-size:
        11px;

    font-weight:
        700;

    letter-spacing:
        1.4px;

    text-transform:
        uppercase;

    color:
        #25a95b;

    margin-bottom:
        9px;
}

.eyebrow i {

    width:
        7px;

    height:
        7px;

    border-radius:
        50%;

    background:
        #25d366;

    box-shadow:
        0 0 0 5px rgba(37, 211, 102, .08);

    animation:
        dotPulse 1.8s infinite;
}

@keyframes dotPulse {

    0%,
    100% {
        transform:
            scale(1);
    }

    50% {
        transform:
            scale(1.35);
    }

}


/* =========================================================
   ONE LINE DESKTOP HEADING
========================================================= */

.services-heading h2 {

    display:
        block;

    white-space:
        nowrap;

    font-size:
        clamp(34px, 4vw, 52px);

    line-height:
        1;

    letter-spacing:
        -2px;

    font-weight:
        800;

    color:
        #172f68;
}

.services-heading h2 span {

    color:
        #25a95b;
}

.services-heading p {

    max-width:
        610px;

    margin:
        11px auto 0;

    font-size:
        14px;

    line-height:
        1.6;

    color:
        #667895;
}


/* =========================================================
   STAGE
========================================================= */

.conversation-stage {

    position:
        relative;

    height:
        400px;

    max-width:
        1050px;

    margin:
        auto;

    perspective:
        1200px;

    transform-style:
        preserve-3d;

    transition:
        transform .25s ease;
}


/* =========================================================
   CONNECTORS
========================================================= */

.connector {

    position:
        absolute;

    width:
        185px;

    height:
        1px;

    background:
        linear-gradient(90deg,
            transparent,
            rgba(23, 47, 104, .20),
            transparent);

    z-index:
        1;
}

.connector::after {

    content:
        "";

    position:
        absolute;

    width:
        7px;

    height:
        7px;

    top:
        -3px;

    left:
        0;

    border-radius:
        50%;

    background:
        #25d366;

    box-shadow:
        0 0 12px rgba(37, 211, 102, .8);

    animation:
        signalMove 2.5s linear infinite;
}

@keyframes signalMove {

    0% {
        left:
            0;

        opacity:
            0;
    }

    15% {
        opacity:
            1;
    }

    85% {
        opacity:
            1;
    }

    100% {

        left:
            calc(100% - 7px);

        opacity:
            0;
    }
}

.connector.one {

    left:
        22%;

    top:
        27%;

    transform:
        rotate(8deg);
}

.connector.two {

    left:
        22%;

    bottom:
        27%;

    transform:
        rotate(-8deg);
}

.connector.three {

    right:
        22%;

    top:
        27%;

    transform:
        rotate(-8deg);
}

.connector.four {

    right:
        22%;

    bottom:
        27%;

    transform:
        rotate(8deg);
}


/* =========================================================
   SERVICE CARDS
========================================================= */

.service-bubble {

    position:
        absolute;

    width:
        215px;

    padding:
        17px;

    border-radius:
        20px;

    background:
        rgba(255, 255, 255, .91);

    border:
        1px solid rgba(23, 47, 104, .09);

    box-shadow:
        0 14px 40px rgba(23, 47, 104, .10);

    backdrop-filter:
        blur(14px);

    cursor:
        pointer;

    z-index:
        5;

    transition:
        transform .5s cubic-bezier(.2, .8, .2, 1),
        border-color .4s ease,
        box-shadow .4s ease;
}

.service-bubble:hover {

    transform:
        translateY(-7px) scale(1.025);
}

.service-bubble.active {

    transform:
        translateY(-9px) scale(1.05);

    border-color:
        rgba(37, 211, 102, .45);

    box-shadow:
        0 20px 50px rgba(23, 47, 104, .14),
        0 0 0 5px rgba(37, 211, 102, .05);
}

.service-bubble.whatsapp {

    left:
        3%;

    top:
        6%;

    animation:
        floatOne 5s ease-in-out infinite;
}

.service-bubble.sms {

    left:
        3%;

    bottom:
        6%;

    animation:
        floatTwo 5.5s ease-in-out infinite;
}

.service-bubble.rcs {

    right:
        3%;

    top:
        6%;

    animation:
        floatThree 5.2s ease-in-out infinite;
}

.service-bubble.voice {

    right:
        3%;

    bottom:
        6%;

    animation:
        floatFour 5.8s ease-in-out infinite;
}

@keyframes floatOne {

    0%,
    100% {
        margin-top:
            0;
    }

    50% {
        margin-top:
            -7px;
    }
}

@keyframes floatTwo {

    0%,
    100% {
        margin-top:
            0;
    }

    50% {
        margin-top:
            7px;
    }
}

@keyframes floatThree {

    0%,
    100% {
        margin-top:
            0;
    }

    50% {
        margin-top:
            -8px;
    }
}

@keyframes floatFour {

    0%,
    100% {
        margin-top:
            0;
    }

    50% {
        margin-top:
            8px;
    }
}

.service-top {

    display:
        flex;

    align-items:
        center;

    gap:
        10px;

    margin-bottom:
        9px;
}

.service-icon {

    width:
        38px;

    height:
        38px;

    flex:
        0 0 38px;

    display:
        grid;

    place-items:
        center;

    border-radius:
        12px;

    background:
        #f1f5f9;

    font-size:
        17px;

    transition:
        transform .4s ease,
        background .4s ease;
}

.service-bubble.active .service-icon {

    transform:
        rotate(-5deg) scale(1.08);

    background:
        rgba(37, 211, 102, .10);
}

.service-bubble h3 {

    flex:
        1;

    font-size:
        14px;

    line-height:
        1.25;

    color:
        #172f68;
}

.service-bubble p {

    font-size:
        11px;

    line-height:
        1.5;

    color:
        #72819b;
}

.service-arrow {

    font-size:
        18px;

    color:
        #a4afc1;

    transition:
        transform .3s ease,
        color .3s ease;
}

.service-bubble.active .service-arrow {

    color:
        #25a95b;

    transform:
        translateX(4px);
}


/* =========================================================
   PHONE
========================================================= */

.chat-center {

    position:
        absolute;

    left:
        50%;

    top:
        50%;

    transform:
        translate(-50%, -50%);

    z-index:
        10;
}

.device {

    position:
        relative;

    width:
        220px;

    height:
        365px;

    padding:
        7px;

    border-radius:
        34px;

    background:
        #111923;

    box-shadow:
        0 30px 65px rgba(16, 29, 51, .28),
        0 0 0 1px rgba(255, 255, 255, .2);

    animation:
        phoneFloat 4s ease-in-out infinite;

    cursor:
        pointer;

    outline:
        none;
}

.device::before {

    content:
        "";

    position:
        absolute;

    top:
        7px;

    left:
        50%;

    transform:
        translateX(-50%);

    width:
        72px;

    height:
        18px;

    border-radius:
        0 0 13px 13px;

    background:
        #111923;

    z-index:
        50;
}

.device:hover {

    box-shadow:
        0 35px 75px rgba(16, 29, 51, .34),
        0 0 0 1px rgba(37, 211, 102, .35);
}

@keyframes phoneFloat {

    0%,
    100% {
        transform:
            translateY(0);
    }

    50% {
        transform:
            translateY(-8px);
    }
}


/* =========================================================
   PHONE SCREEN
========================================================= */

.device-screen {

    position:
        relative;

    width:
        100%;

    height:
        100%;

    overflow:
        hidden;

    border-radius:
        28px;

    background:
        #ffffff;
}


/* =========================================================
   PHONE HEADER
========================================================= */

.channel-header {

    height:
        56px;

    padding:
        17px 12px 8px;

    display:
        flex;

    align-items:
        center;

    gap:
        8px;

    color:
        white;

    background:
        #25a95b;

    transition:
        background .5s ease;
}

.channel-avatar {

    width:
        28px;

    height:
        28px;

    display:
        grid;

    place-items:
        center;

    border-radius:
        50%;

    background:
        rgba(255, 255, 255, .2);

    font-size:
        11px;

    font-weight:
        800;
}

.channel-name {

    font-size:
        10px;

    font-weight:
        700;
}

.channel-status {

    font-size:
        8px;

    opacity:
        .75;

    margin-top:
        2px;
}


/* =========================================================
   CHANNEL CONTENT
========================================================= */

.channel-content {

    position:
        relative;

    height:
        calc(100% - 56px);
}

.channel-ui {

    position:
        absolute;

    inset:
        0;

    opacity:
        0;

    visibility:
        hidden;

    pointer-events:
        none;

    transition:
        opacity .35s ease;
}

.channel-ui.active {

    opacity:
        1;

    visibility:
        visible;

    pointer-events:
        auto;
}


/* =========================================================
   WHATSAPP
========================================================= */

.whatsapp-ui {

    padding:
        13px 9px;

    background:
        radial-gradient(circle at 20% 20%,
            rgba(37, 211, 102, .08),
            transparent 35%),
        #edf7f0;
}

.whatsapp-chat {

    display:
        flex;

    flex-direction:
        column;

    gap:
        7px;
}

.wa-message {

    max-width:
        82%;

    padding:
        7px 9px;

    border-radius:
        9px;

    font-size:
        9px;

    line-height:
        1.4;

    opacity:
        0;
}

.wa-message.incoming {

    align-self:
        flex-start;

    background:
        white;

    border-top-left-radius:
        3px;

    animation:
        messageIn .6s ease forwards;
}

.wa-message.outgoing {

    align-self:
        flex-end;

    background:
        #d8fdd2;

    border-top-right-radius:
        3px;

    animation:
        messageOut .6s ease forwards;
}

.wa-message:nth-child(1) {
    animation-delay:
        .2s;
}

.wa-message:nth-child(2) {
    animation-delay:
        1s;
}

.wa-message:nth-child(3) {
    animation-delay:
        1.8s;
}

.wa-message:nth-child(4) {
    animation-delay:
        2.6s;
}

@keyframes messageIn {

    from {
        opacity:
            0;

        transform:
            translateX(-15px) scale(.9);
    }

    to {
        opacity:
            1;

        transform:
            translateX(0) scale(1);
    }
}

@keyframes messageOut {

    from {
        opacity:
            0;

        transform:
            translateX(15px) scale(.9);
    }

    to {
        opacity:
            1;

        transform:
            translateX(0) scale(1);
    }
}

.wa-time {

    display:
        block;

    text-align:
        right;

    margin-top:
        3px;

    font-size:
        7px;

    color:
        #7e8d82;
}

.wa-ticks {

    color:
        #4e9cdb;

    margin-left:
        3px;
}

.typing {

    width:
        42px;

    height:
        23px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        3px;

    border-radius:
        12px;

    background:
        white;

    opacity:
        0;

    animation:
        typingShow 1.2s ease 3.5s forwards;
}

.typing span {

    width:
        4px;

    height:
        4px;

    border-radius:
        50%;

    background:
        #9aa49c;

    animation:
        typingDot 1s infinite;
}

.typing span:nth-child(2) {
    animation-delay:
        .15s;
}

.typing span:nth-child(3) {
    animation-delay:
        .3s;
}

@keyframes typingShow {

    to {
        opacity:
            1;
    }
}

@keyframes typingDot {

    0%,
    100% {
        transform:
            translateY(0);
    }

    50% {
        transform:
            translateY(-3px);
    }
}


/* =========================================================
   SMS
========================================================= */

.sms-ui {

    background:
        #f4f6fa;

    padding:
        10px;
}

.sms-toolbar {

    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    padding-bottom:
        10px;

    border-bottom:
        1px solid #e1e6ee;
}

.sms-toolbar strong {

    font-size:
        10px;
}

.sms-toolbar span {

    width:
        22px;

    height:
        22px;

    display:
        grid;

    place-items:
        center;

    border-radius:
        50%;

    background:
        #e8edf5;

    font-size:
        9px;
}

.sms-thread {

    margin-top:
        15px;

    display:
        flex;

    flex-direction:
        column;

    gap:
        8px;

    max-height:
        220px;

    overflow:
        hidden;
}

.sms-message {

    max-width:
        82%;

    padding:
        8px 9px;

    border-radius:
        13px;

    font-size:
        9px;

    line-height:
        1.4;

    opacity:
        0;
}

.sms-message.left {

    align-self:
        flex-start;

    background:
        white;

    animation:
        smsAppear .6s ease .3s forwards;
}

.sms-message.right {

    align-self:
        flex-end;

    color:
        white;

    background:
        #4267a9;

    animation:
        smsAppear .6s ease 1.2s forwards;
}

.sms-message:nth-child(3) {
    animation-delay:
        2.2s;
}

@keyframes smsAppear {

    from {

        opacity:
            0;

        transform:
            translateY(12px);
    }

    to {

        opacity:
            1;

        transform:
            translateY(0);
    }
}

.sms-delivered {

    margin-top:
        5px;

    font-size:
        7px;

    opacity:
        .65;

    text-align:
        right;
}

.sms-progress {

    margin-top:
        18px;

    height:
        5px;

    border-radius:
        5px;

    background:
        #e1e6ee;

    overflow:
        hidden;
}

.sms-progress span {

    display:
        block;

    width:
        0;

    height:
        100%;

    border-radius:
        inherit;

    background:
        #4267a9;

    animation:
        smsProgress 4s ease .5s forwards;
}

@keyframes smsProgress {

    to {
        width:
            100%;
    }
}


/* =========================================================
   RCS
========================================================= */

.rcs-ui {

    background:
        #f4f7fb;

    padding:
        12px;
}

.rcs-rich-card {

    overflow:
        hidden;

    border-radius:
        13px;

    background:
        white;

    box-shadow:
        0 8px 20px rgba(23, 47, 104, .08);

    transform:
        translateY(18px) scale(.95);

    opacity:
        0;

    animation:
        rcsCard .8s cubic-bezier(.2, .8, .2, 1) .2s forwards;
}

@keyframes rcsCard {

    to {

        opacity:
            1;

        transform:
            translateY(0) scale(1);
    }
}

.rcs-image {

    height:
        105px;

    position:
        relative;

    overflow:
        hidden;

    background:
        linear-gradient(135deg,
            #e5f6eb,
            #dce8fb);
}

.rcs-image::before {

    content:
        "RCS";

    position:
        absolute;

    left:
        50%;

    top:
        50%;

    transform:
        translate(-50%, -50%) rotate(-8deg);

    font-size:
        28px;

    font-weight:
        900;

    letter-spacing:
        2px;

    color:
        rgba(23, 47, 104, .12);
}

.rcs-content {

    padding:
        11px;
}

.rcs-content h4 {

    font-size:
        11px;

    color:
        #172f68;

    margin-bottom:
        5px;
}

.rcs-content p {

    font-size:
        8px;

    line-height:
        1.4;

    color:
        #71809a;

    margin-bottom:
        10px;
}

.rcs-buttons {

    display:
        grid;

    grid-template-columns:
        1fr 1fr;

    gap:
        5px;
}

.rcs-buttons button {

    border:
        0;

    padding:
        7px 4px;

    border-radius:
        7px;

    font-size:
        7px;

    font-weight:
        700;

    color:
        #2374c6;

    background:
        #edf5ff;

    cursor:
        pointer;

    animation:
        rcsButton 1.5s ease-in-out infinite;
}

.rcs-buttons button:nth-child(2) {

    animation-delay:
        .4s;
}

@keyframes rcsButton {

    0%,
    100% {
        transform:
            scale(1);
    }

    50% {
        transform:
            scale(1.04);
    }
}


/* =========================================================
   RCS CLICK RESPONSE
========================================================= */

.rcs-click-response {

    position:
        absolute;

    inset:
        0;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    padding:
        20px;

    background:
        rgba(244, 247, 251, .96);

    opacity:
        0;

    transform:
        translateY(15px);

    pointer-events:
        none;

    transition:
        opacity .4s ease,
        transform .4s ease;

    z-index:
        20;
}

.rcs-click-response.show {

    opacity:
        1;

    transform:
        translateY(0);

    pointer-events:
        auto;
}

.rcs-response-card {

    width:
        100%;

    padding:
        18px 13px;

    text-align:
        center;

    border-radius:
        14px;

    background:
        white;

    box-shadow:
        0 12px 30px rgba(23, 47, 104, .10);
}

.rcs-response-icon {

    width:
        42px;

    height:
        42px;

    margin:
        0 auto 10px;

    display:
        grid;

    place-items:
        center;

    border-radius:
        50%;

    background:
        #e8f2ff;

    color:
        #4776bd;

    font-weight:
        900;

    font-size:
        17px;

    animation:
        rcsSuccess .7s ease;
}

@keyframes rcsSuccess {

    0% {
        transform:
            scale(.5) rotate(-20deg);

        opacity:
            0;
    }

    100% {
        transform:
            scale(1) rotate(0);

        opacity:
            1;
    }
}

.rcs-response-card strong {

    display:
        block;

    font-size:
        11px;

    color:
        #172f68;

    margin-bottom:
        5px;
}

.rcs-response-card span {

    display:
        block;

    font-size:
        8px;

    line-height:
        1.5;

    color:
        #71809a;
}


/* =========================================================
   VOICE
========================================================= */

.voice-ui {

    background:
        radial-gradient(circle at 50% 25%,
            rgba(71, 113, 188, .3),
            transparent 35%),
        #101827;

    color:
        white;

    display:
        flex;

    flex-direction:
        column;

    align-items:
        center;

    justify-content:
        center;

    padding:
        20px;
}

.voice-avatar {

    width:
        58px;

    height:
        58px;

    display:
        grid;

    place-items:
        center;

    border-radius:
        50%;

    background:
        linear-gradient(135deg,
            #527bc1,
            #294b86);

    box-shadow:
        0 0 0 8px rgba(82, 123, 193, .08);

    font-size:
        20px;

    font-weight:
        800;

    animation:
        voicePulse 2s ease-in-out infinite;
}

@keyframes voicePulse {

    0%,
    100% {
        box-shadow:
            0 0 0 7px rgba(82, 123, 193, .08);
    }

    50% {
        box-shadow:
            0 0 0 14px rgba(82, 123, 193, .03);
    }
}

.voice-name {

    margin-top:
        13px;

    font-size:
        12px;

    font-weight:
        700;
}

.voice-status {

    margin-top:
        4px;

    font-size:
        8px;

    opacity:
        .6;
}

.waveform {

    height:
        45px;

    margin:
        18px 0;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        3px;
}

.waveform span {

    width:
        3px;

    height:
        10px;

    border-radius:
        4px;

    background:
        #69a1ff;

    animation:
        wave .9s ease-in-out infinite;
}

.waveform span:nth-child(2) {
    animation-delay:
        .1s;
}

.waveform span:nth-child(3) {
    animation-delay:
        .2s;
}

.waveform span:nth-child(4) {
    animation-delay:
        .3s;
}

.waveform span:nth-child(5) {
    animation-delay:
        .4s;
}

.waveform span:nth-child(6) {
    animation-delay:
        .5s;
}

.waveform span:nth-child(7) {
    animation-delay:
        .4s;
}

.waveform span:nth-child(8) {
    animation-delay:
        .3s;
}

@keyframes wave {

    0%,
    100% {
        height:
            8px;
    }

    50% {
        height:
            34px;
    }
}

.call-button {

    width:
        40px;

    height:
        40px;

    display:
        grid;

    place-items:
        center;

    border-radius:
        50%;

    background:
        #e64c55;

    font-size:
        15px;

    cursor:
        pointer;

    animation:
        callButton 2s ease-in-out infinite;

    transition:
        background .3s ease,
        transform .3s ease;
}

.call-button.connected {

    background:
        #25a95b;
}

@keyframes callButton {

    0%,
    100% {
        transform:
            scale(1);
    }

    50% {
        transform:
            scale(1.08);
    }
}


/* =========================================================
   CTA
========================================================= */

.services-cta {

    margin-top:
        5px;

    text-align:
        center;

    opacity:
        0;

    transform:
        translateY(15px);

    transition:
        opacity .8s ease,
        transform .8s ease;
}

.services-cta.visible {

    opacity:
        1;

    transform:
        translateY(0);
}

.services-cta a {

    display:
        inline-flex;

    align-items:
        center;

    gap:
        8px;

    color:
        #172f68;

    text-decoration:
        none;

    font-size:
        13px;

    font-weight:
        700;
}

.services-cta a span {

    color:
        #25a95b;

    font-size:
        17px;

    transition:
        transform .3s ease;
}

.services-cta a:hover span {

    transform:
        translateX(4px);
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 900px) {

    .linksy-services {

        min-height:
            auto;

        padding:
            55px 0 40px;
    }

    .services-heading h2 {

        white-space:
            normal;
    }

    .conversation-stage {

        height:
            600px;
    }

    .device {

        width:
            195px;

        height:
            350px;
    }

    .service-bubble {

        width:
            180px;
    }

    .service-bubble.whatsapp {

        left:
            0;

        top:
            3%;
    }

    .service-bubble.sms {

        left:
            0;

        bottom:
            3%;
    }

    .service-bubble.rcs {

        right:
            0;

        top:
            3%;
    }

    .service-bubble.voice {

        right:
            0;

        bottom:
            3%;
    }

    .connector {

        width:
            110px;
    }

    .connector.one,
    .connector.two {

        left:
            21%;
    }

    .connector.three,
    .connector.four {

        right:
            21%;
    }
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 650px) {

    .services-container {

        width:
            calc(100% - 24px);
    }

    .linksy-services {

        padding:
            45px 0 35px;
    }

    .services-heading {

        margin-bottom:
            12px;
    }

    .services-heading h2 {

        font-size:
            32px;

        letter-spacing:
            -1px;

        white-space:
            normal;
    }

    .services-heading p {

        font-size:
            12px;
    }

    .conversation-stage {

        height:
            570px;
    }

    .device {

        width:
            170px;

        height:
            305px;
    }

    .service-bubble {

        width:
            145px;

        padding:
            12px;

        border-radius:
            16px;
    }

    .service-top {

        gap:
            7px;

        margin-bottom:
            5px;
    }

    .service-icon {

        width:
            31px;

        height:
            31px;

        flex-basis:
            31px;

        font-size:
            14px;

        border-radius:
            9px;
    }

    .service-bubble h3 {

        font-size:
            11px;
    }

    .service-bubble p {

        font-size:
            9px;
    }

    .service-arrow {

        font-size:
            14px;
    }

    .service-bubble.whatsapp {

        left:
            0;

        top:
            1%;
    }

    .service-bubble.rcs {

        right:
            0;

        top:
            1%;
    }

    .service-bubble.sms {

        left:
            0;

        bottom:
            1%;
    }

    .service-bubble.voice {

        right:
            0;

        bottom:
            1%;
    }

    .connector {

        width:
            65px;
    }

    .connector.one,
    .connector.two {

        left:
            28%;
    }

    .connector.three,
    .connector.four {

        right:
            28%;
    }
}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 450px) {

    .conversation-stage {

        height:
            550px;
    }

    .device {

        width:
            155px;

        height:
            285px;
    }

    .service-bubble {

        width:
            130px;

        padding:
            10px;
    }

    .service-bubble p {

        display:
            none;
    }

    .service-icon {

        width:
            28px;

        height:
            28px;

        flex-basis:
            28px;
    }

    .service-bubble h3 {

        font-size:
            10px;
    }

    .connector {

        width:
            48px;
    }

    .connector.one,
    .connector.two {

        left:
            31%;
    }

    .connector.three,
    .connector.four {

        right:
            31%;
    }
}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media (prefers-reduced-motion: reduce) {

    *,
    *::before,
    *::after {

        animation-duration:
            .01ms !important;

        animation-iteration-count:
            1 !important;

        transition-duration:
            .01ms !important;
    }
}

/* contact section heading css */
.store-journey-contact {
    display: flex;
    flex-direction: column;
    margin-top: 60px;
    margin-bottom: 40px;
    padding-left: 60px;
    padding-right: 60px;
}

.store-journey-heading {
    text-align: center;
}

.store-journey-heading h1 {
    margin: 0;
    padding: 0;
    font-family: "Poppins", sans-serif;
    font-size: 2.5rem;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 1px;

    color: #134376;
}

.store-journey-subheading {
    text-align: center;
}

.store-journey-subheading h5 {
    margin-top: 0.5rem;
    margin-bottom: 1rem;
    font-family: "Roboto", sans-serif;
    font-size: 1.25rem;
    font-weight: 600;
    line-height: 1.2;
    color: #4A4A4A;
}

/* contact section form css */
.store-demo-section {
    display: flex;
    flex-direction: row;
    width: 100%;
    padding: 0 60px 60px;
    box-sizing: border-box;
}

.store-demo-image {
    width: 50%;
    display: flex;
    flex-direction: column;
}

.store-demo-image img {
    display: inline-block;
    width: 100%;
    height: auto;
    max-width: 100%;
    border: none;
    border-radius: 0;
    box-shadow: none;
    vertical-align: middle;
}

.store-demo-form-area {
    width: 50%;
    display: flex;
    flex-direction: column;
    align-self: center;
}

.store-demo-form {
    margin: 0 auto;
    width: 100%;
    font-family: "Inter", Arial, sans-serif;
    color: #222;
    display: grid;
    grid-template-columns: 1fr;
    gap: 15px;
}

.store-form-row {
    width: 100%;
}

.store-form-two-column {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
}

.store-form-field {
    width: 100%;
}

.store-form-field label {
    display: block;
    font-weight: 600;
    margin-bottom: 6px;
    color: #111;
    line-height: 1;
}

.store-form-field input,
.store-form-field select {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid #ddd;
    border-radius: 8px;
    font-family: inherit;
    font-size: 14px;
    line-height: 1.5;
    background: #fff;
    color: #222;
    transition: border 0.2s;
    box-sizing: border-box;
}

.store-form-field select {
    display: block;
    cursor: pointer;
}

.store-form-field input:focus,
.store-form-field select:focus {
    outline: none;
    border-color: #14ABA2;
}

.store-other-platform {
    display: none;
}

.store-form-checkbox {
    width: 100%;
}

.store-checkbox-label {
    display: flex !important;
    align-items: flex-start;
    gap: 8px;
    margin: 0 !important;
    font-weight: 400 !important;
    line-height: 1.3em !important;
    cursor: pointer;
}

.store-checkbox-label input[type="checkbox"] {
    width: auto;
    margin: 2px 0 0;
    flex-shrink: 0;
}

.store-checkbox-text {
    line-height: 1.3em;
    color: #222;
}

.store-demo-submit {
    display: block;
    width: 100%;
    background: #14ABA2;
    border: none;
    padding: 14px;
    border-radius: 50px;
    font-size: 16px;
    font-weight: 600;
    color: #fff;
    cursor: pointer;
    transition: 0.3s;
}

.store-demo-submit:disabled {
    cursor: not-allowed;
    opacity: 1;
}

.store-demo-submit:not(:disabled):hover {
    background: #11958d;
}

/* Tablet & Mobile */
@media (max-width: 767px) {

    .store-demo-section {
        flex-direction: column;
        padding: 0 25px 40px;
    }

    .store-demo-image,
    .store-demo-form-area {
        width: 100%;
    }

    .store-demo-image {
        margin-bottom: 30px;
    }

    .store-form-two-column {
        grid-template-columns: 1fr;
        gap: 15px;
    }

}

/* =========================================
   DEMO CTA SECTION
========================================= */

.demo-cta {
    width: 100%;
    background: #154579;
    /* padding: 75px 30px; */
    padding-top: 20px;
    overflow: hidden;
}


/* =========================================
   MAIN INNER
========================================= */

.demo-cta-inner {
    width: 100%;
    max-width: 1350px;
    margin: 0 auto;

    display: grid;
    grid-template-columns:
        minmax(220px, 28%) minmax(0, 1fr);

    column-gap: 45px;

    align-items: stretch;
}


/* =========================================
   CHARACTER
========================================= */

.demo-cta-character {
    min-width: 0;
    height: 100%;

    display: flex;
    align-items: flex-start;
    justify-content: center;
}

.demo-cta-character img {
    display: block;
    width: 128%;
    max-width: 701px;
    height: 100%;
    object-fit: contain;
    object-position: center bottom;
}


/* =========================================
   CONTENT
========================================= */

.demo-cta-content {
    min-width: 0;

    display: flex;
    flex-direction: column;
    justify-content: center;

    padding: 10px 0;
}


/* =========================================
   SMALL LABEL
========================================= */

.demo-cta-label {
    display: block;

    margin-bottom: 18px;

    color: rgba(255, 255, 255, 0.75);

    font-size: 13px;
    font-weight: 700;

    letter-spacing: 2.5px;
    text-transform: uppercase;
}


/* =========================================
   HEADING
========================================= */

.demo-cta h2 {
    width: 100%;
    max-width: 900px;

    margin: 0;

    color: #fff;

    font-size: clamp(34px, 3.2vw, 52px);
    line-height: 1.08;

    font-weight: 700;
    letter-spacing: -1.5px;

    overflow-wrap: break-word;
    word-break: normal;
}

.demo-cta h2 span {
    color: #fff;
}


/* =========================================
   DESCRIPTION
========================================= */

.demo-cta-content p {
    max-width: 700px;

    margin: 20px 0 28px;

    color: #fff;

    font-size: 18px;
    line-height: 1.7;

    font-weight: 400;
}

.demo-cta-content p strong {
    color: #fff;
    font-weight: 700;
}


/* =========================================
   BOOK A DEMO BUTTON
========================================= */

.demo-cta-btn {
    display: inline-flex;
    align-items: center;

    align-self: flex-start;

    gap: 14px;

    padding: 7px 8px 7px 23px;

    background: #fff;
    color: #154579;

    text-decoration: none;

    font-size: 14px;
    font-weight: 700;

    border-radius: 50px;

    white-space: nowrap;

    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.12);

    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease;
}


/* Arrow circle */

.demo-cta-btn strong {
    width: 40px;
    height: 40px;

    display: flex;
    align-items: center;
    justify-content: center;

    flex-shrink: 0;

    border-radius: 50%;

    background: #154579;
    color: #fff;

    font-size: 18px;
    font-weight: 400;

    transition: transform 0.3s ease;
}


/* Button hover */

.demo-cta-btn:hover {
    transform: translateY(-3px);

    box-shadow: 0 14px 30px rgba(0, 0, 0, 0.22);
}

.demo-cta-btn:hover strong {
    transform: rotate(45deg);
}


/* =========================================
   TABLET
========================================= */

@media (max-width: 992px) {

    .demo-cta {
        padding: 65px 25px;
    }

    .demo-cta-inner {
        grid-template-columns:
            minmax(180px, 30%) minmax(0, 1fr);

        column-gap: 30px;
    }

    .demo-cta-character img {
        max-width: 280px;
    }

    .demo-cta h2 {
        font-size: clamp(32px, 4vw, 44px);
    }

    .demo-cta-content p {
        font-size: 17px;
    }
}


/* =========================================
   MOBILE
========================================= */

@media (max-width: 767px) {

    .demo-cta {
        padding: 55px 20px;
    }

    .demo-cta-inner {
        display: flex;
        flex-direction: column;
        gap: 30px;
    }

    .demo-cta-character {
        height: auto;

        justify-content: center;
        align-items: flex-end;

        order: 1;
    }

    .demo-cta-character img {
        width: 220px;
        height: auto;
        max-width: 100%;
    }

    .demo-cta-content {
        order: 2;

        padding: 0;
    }

    .demo-cta-label {
        margin-bottom: 14px;
    }

    .demo-cta h2 {
        font-size: 34px;
        line-height: 1.12;
        letter-spacing: -1px;
    }

    .demo-cta-content p {
        margin: 18px 0 25px;

        font-size: 17px;
        line-height: 1.6;
    }

    .demo-cta-btn {
        font-size: 14px;
    }
}


/* =========================================
   SMALL MOBILE
========================================= */

@media (max-width: 480px) {

    .demo-cta {
        padding: 45px 18px;
    }

    .demo-cta-character img {
        width: 190px;
    }

    .demo-cta h2 {
        font-size: 30px;
    }

    .demo-cta-content p {
        font-size: 16px;
    }
}

/* footer css */
/* =========================================================
   LINKSY FOOTER
   ISOLATED / OVERRIDE-SAFE
========================================================= */

.lnksy-footer {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;

    background: #101820 !important;
    color: #ffffff !important;

    display: block !important;
    position: relative !important;

    overflow: hidden !important;

    text-align: left !important;

    font-family: inherit;
}


/* RESET EVERYTHING INSIDE FOOTER */

.lnksy-footer *,
.lnksy-footer *::before,
.lnksy-footer *::after {
    box-sizing: border-box !important;
}


/* =========================================================
   MAIN FOOTER
========================================================= */

.lnksy-footer__main {
    width: 100% !important;
    max-width: none !important;

    margin: 0 !important;
    padding: 80px 0 70px !important;

    background: #101820 !important;
}


.lnksy-footer__container {
    width: 100% !important;
    max-width: 1180px !important;

    margin: 0 auto !important;
    padding: 0 20px !important;

    display: grid !important;

    grid-template-columns:
        minmax(0, 1.45fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.35fr) !important;

    gap: 50px !important;

    text-align: left !important;
}


/* =========================================================
   BRAND
========================================================= */

.lnksy-footer__brand {
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;

    display: block !important;
}


.lnksy-footer__logo {
    display: inline-block !important;

    width: auto !important;
    max-width: none !important;

    margin: 0 0 22px !important;
    padding: 0 !important;

    color: #ffffff !important;
    text-decoration: none !important;

    font-size: 38px !important;
    line-height: 1 !important;
    font-weight: 800 !important;
    letter-spacing: -1.5px !important;
}


.lnksy-footer__logo span {
    color: #25d366 !important;
}


.lnksy-footer__description {
    display: block !important;

    width: 100% !important;
    max-width: 350px !important;

    margin: 0 0 24px !important;
    padding: 0 !important;

    color: #aeb8c5 !important;

    font-size: 15px !important;
    line-height: 1.8 !important;
    font-weight: 400 !important;

    text-align: left !important;
}


.lnksy-footer__connect {
    width: auto !important;

    display: flex !important;
    align-items: center !important;

    gap: 8px !important;

    margin: 0 !important;
    padding: 0 !important;

    color: #ffffff !important;

    font-size: 14px !important;
    line-height: 1.5 !important;
    font-weight: 700 !important;
}


.lnksy-footer__connect span {
    display: inline !important;

    margin: 0 !important;
    padding: 0 !important;

    color: #ffffff !important;
}


.lnksy-footer__connect b {
    display: inline !important;

    margin: 0 !important;
    padding: 0 !important;

    color: #25d366 !important;
}


/* =========================================================
   FOOTER COLUMNS
========================================================= */

.lnksy-footer__column {
    width: auto !important;
    min-width: 0 !important;

    margin: 0 !important;
    padding: 0 !important;

    display: block !important;
}


.lnksy-footer__title {
    display: block !important;

    width: auto !important;

    margin: 0 0 24px !important;
    padding: 0 !important;

    color: #ffffff !important;

    font-size: 17px !important;
    line-height: 1.3 !important;
    font-weight: 700 !important;

    text-align: left !important;
}


/* =========================================================
   LIST
========================================================= */

.lnksy-footer__list {
    display: block !important;

    width: auto !important;

    list-style: none !important;
    list-style-type: none !important;

    margin: 0 !important;
    padding: 0 !important;
}


.lnksy-footer__list li {
    display: block !important;

    width: auto !important;

    list-style: none !important;
    list-style-type: none !important;

    margin: 0 0 13px !important;
    padding: 0 !important;
}


.lnksy-footer__list li::before {
    display: none !important;
    content: none !important;
}


.lnksy-footer__list li:last-child {
    margin-bottom: 0 !important;
}


.lnksy-footer__list a {
    display: inline-block !important;

    width: auto !important;

    margin: 0 !important;
    padding: 0 !important;

    color: #aeb8c5 !important;

    text-decoration: none !important;

    font-size: 14px !important;
    line-height: 1.5 !important;
    font-weight: 400 !important;

    transition:
        color 0.25s ease,
        transform 0.25s ease !important;
}


.lnksy-footer__list a:hover {
    color: #25d366 !important;

    transform: translateX(5px) !important;
}


/* =========================================================
   CONTACT
========================================================= */

.lnksy-footer__contact {
    width: auto !important;
    min-width: 0 !important;

    margin: 0 !important;
    padding: 0 !important;

    display: block !important;
}


.lnksy-footer__contact-description {
    display: block !important;

    width: 100% !important;

    margin: 0 0 22px !important;
    padding: 0 !important;

    color: #aeb8c5 !important;

    font-size: 14px !important;
    line-height: 1.75 !important;
    font-weight: 400 !important;

    text-align: left !important;
}


.lnksy-footer__contact-link {
    display: flex !important;
    align-items: flex-start !important;

    width: 100% !important;

    gap: 12px !important;

    margin: 0 0 16px !important;
    padding: 0 !important;

    color: #aeb8c5 !important;

    text-decoration: none !important;

    font-size: 14px !important;
    line-height: 1.6 !important;

    text-align: left !important;

    transition: color 0.25s ease !important;
}


.lnksy-footer__contact-link:last-child {
    margin-bottom: 0 !important;
}


.lnksy-footer__contact-link:hover {
    color: #25d366 !important;
}


/* =========================================================
   CONTACT ICON
========================================================= */

.lnksy-footer__icon {
    width: 32px !important;
    height: 32px !important;

    min-width: 32px !important;
    max-width: 32px !important;

    flex: 0 0 32px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    margin: 0 !important;
    padding: 0 !important;

    border: 1px solid rgba(37, 211, 102, 0.4) !important;
    border-radius: 50% !important;

    color: #25d366 !important;

    background: transparent !important;
}


.lnksy-footer__icon svg {
    display: block !important;

    width: 15px !important;
    height: 15px !important;

    margin: 0 !important;
    padding: 0 !important;

    fill: none !important;

    stroke: currentColor !important;
    stroke-width: 1.7 !important;

    stroke-linecap: round !important;
    stroke-linejoin: round !important;
}


.lnksy-footer__contact-text {
    display: block !important;

    width: auto !important;
    min-width: 0 !important;

    margin: 0 !important;
    padding: 5px 0 0 !important;

    color: inherit !important;
}


/* =========================================================
   BOTTOM FOOTER
========================================================= */

.lnksy-footer__bottom {
    width: 100% !important;
    max-width: none !important;

    margin: 0 !important;

    padding: 20px 0 !important;

    border-top: 1px solid rgba(255, 255, 255, 0.09) !important;

    background: #101820 !important;
}


.lnksy-footer__bottom-container {
    width: 100% !important;
    max-width: 1180px !important;

    margin: 0 auto !important;
    padding: 0 20px !important;

    display: flex !important;

    align-items: center !important;
    justify-content: space-between !important;

    gap: 20px !important;

    text-align: left !important;
}


/* COPYRIGHT */

.lnksy-footer__copyright {
    display: block !important;

    width: auto !important;

    margin: 0 !important;
    padding: 0 !important;

    color: #7f8b9b !important;

    font-size: 13px !important;
    line-height: 1.5 !important;
    font-weight: 400 !important;

    text-align: left !important;
}


/* BOTTOM LINKS */

.lnksy-footer__bottom-links {
    display: flex !important;
    align-items: center !important;

    width: auto !important;

    gap: 9px !important;

    margin: 0 !important;
    padding: 0 !important;
}


.lnksy-footer__bottom-links a {
    display: inline-block !important;

    width: auto !important;

    margin: 0 !important;
    padding: 0 !important;

    color: #7f8b9b !important;

    text-decoration: none !important;

    font-size: 13px !important;
    line-height: 1.5 !important;
}


.lnksy-footer__bottom-links a:hover {
    color: #25d366 !important;
}


.lnksy-footer__bottom-links span {
    display: inline !important;

    margin: 0 !important;
    padding: 0 !important;

    color: #25d366 !important;
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 1050px) {

    .lnksy-footer__container {
        grid-template-columns:
            minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr) !important;

        gap: 45px 30px !important;
    }

    .lnksy-footer__contact {
        grid-column: 1 / -1 !important;
    }

}


/* =========================================================
   TABLET / MOBILE
========================================================= */

@media (max-width: 768px) {

    .lnksy-footer__main {
        padding: 60px 0 55px !important;
    }

    .lnksy-footer__container {
        grid-template-columns: 1fr 1fr !important;

        gap: 42px 30px !important;

        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    .lnksy-footer__brand {
        grid-column: 1 / -1 !important;
    }

    .lnksy-footer__contact {
        grid-column: 1 / -1 !important;
    }

    .lnksy-footer__bottom-container {
        flex-direction: column !important;

        align-items: flex-start !important;
        justify-content: flex-start !important;

        gap: 10px !important;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 576px) {

    .lnksy-footer__main {
        padding: 50px 0 45px !important;
    }

    .lnksy-footer__container {
        grid-template-columns: 1fr !important;

        gap: 38px !important;

        padding-left: 15px !important;
        padding-right: 15px !important;
    }

    .lnksy-footer__brand,
    .lnksy-footer__contact {
        grid-column: auto !important;
    }

    .lnksy-footer__logo {
        font-size: 32px !important;
    }

    .lnksy-footer__description {
        max-width: 100% !important;
        font-size: 14px !important;
    }

    .lnksy-footer__bottom {
        padding: 18px 0 !important;
    }

    .lnksy-footer__bottom-container {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }

    .lnksy-footer__bottom-links {
        flex-wrap: wrap !important;
    }

}

/* =========================================================
   FOOTER LOGO IMAGE — final authoritative rule
   Must come last to win all specificity battles.
========================================================= */

.lnksy-footer__logo {
    display: inline-block !important;
    margin: 0 0 24px !important;
    padding: 0 !important;
    text-decoration: none !important;
}

.lnksy-footer__logo img {
    display: block !important;
    /* responsive width — never overflow the column */
    width: auto !important;
    max-width: 150px !important;
    height: auto !important;
    max-height: 44px !important;
    object-fit: contain !important;
    margin: 0 !important;
    padding: 0 !important;
    /* invert so the logo shows white on the dark footer background */
    filter: brightness(0) invert(1) !important;
}

/* tighten logo on small phones */
@media (max-width: 576px) {
    .lnksy-footer__logo img {
        max-width: 130px !important;
        max-height: 38px !important;
    }
}

/* =========================================================
   FOOTER CONNECT TAGLINE
========================================================= */
.lnksy-footer__connect {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 6px 10px !important;
    margin-top: 14px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    letter-spacing: 0.4px !important;
    color: rgba(255,255,255,0.5) !important;
}

.lnksy-footer__connect span {
    color: rgba(255,255,255,0.5) !important;
}

.lnksy-footer__connect b {
    color: #25d366 !important;
    font-weight: 400 !important;
}

/* =========================================================
   BOTTOM BAR — mobile centre-align
========================================================= */
@media (max-width: 480px) {
    .lnksy-footer__bottom-container {
        align-items: center !important;
        text-align: center !important;
    }

    .lnksy-footer__bottom-links {
        justify-content: center !important;
    }

    .lnksy-footer__copyright {
        text-align: center !important;
    }
}

/* contact page  */
/* =====================================================
           RESET
        ====================================================== */

* {
    box-sizing: border-box;
}


html,
body {
    margin: 0;
    padding: 0;
    /* Height follows content only — no forced min-height */
    min-height: 0;
    /* bg matches footer so any sub-pixel gap is invisible */
    background: #101820;
}


body {
    margin: 0;

    font-family:
        "Inter",
        Arial,
        sans-serif;

    background:
        #ffffff;
}


/* =====================================================
           CONTACT SECTION
        ====================================================== */

.linksy-contact-section {

    width: 100%;

    margin-top:
        0;

    padding:
        60px 60px 60px;

    background:
        #154579;

    color:
        #ffffff;

    overflow:
        hidden;
}


/* =====================================================
           HEADING
        ====================================================== */

.linksy-contact-heading {

    width: 100%;

    margin:
        0 auto 35px;

    text-align:
        center;
}


.linksy-contact-heading h1 {

    margin: 0;

    color:
        #ffffff;

    font-family:
        "Poppins",
        sans-serif;

    font-size:
        2.5rem;

    line-height:
        1.2;

    font-weight:
        600;

    letter-spacing:
        0.02em;

    word-spacing:
        0.08em;
}


/* =====================================================
           ICON PLAYGROUND
        ====================================================== */

.linksy-icon-playground {

    position:
        relative;

    width:
        100%;

    max-width:
        1000px;

    height:
        105px;

    margin:
        12px auto 5px;

    overflow:
        visible;

    touch-action:
        none;
}


/* =====================================================
           VERY SUBTLE CENTER LINE
        ====================================================== */

.linksy-icon-playground::before {

    content:
        "";

    position:
        absolute;

    width:
        330px;

    height:
        1px;

    left:
        50%;

    top:
        50%;

    transform:
        translate(-50%,
            -50%);

    background:
        linear-gradient(90deg,
            transparent,
            rgba(255,
                255,
                255,
                .08),
            transparent);

    pointer-events:
        none;
}


/* =====================================================
           ICON SHELL

           This controls:
           - random position
           - dragging

           It does NOT animate.
        ====================================================== */

.linksy-icon-shell {

    position:
        absolute;

    width:
        44px;

    height:
        44px;

    left:
        0;

    top:
        0;

    z-index:
        5;

    cursor:
        grab;

    user-select:
        none;

    touch-action:
        none;

    will-change:
        left,
        top;
}


/* =====================================================
           ICON

           ONLY THE INNER ICON ANIMATES.

           No scaling.
           No rotation.
           No bounce.
        ====================================================== */

.linksy-floating-icon {

    position:
        relative;

    width:
        44px;

    height:
        44px;

    border-radius:
        50%;

    background:
        #ffffff;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    box-shadow:
        0 8px 20px rgba(0,
            0,
            0,
            .14);

    opacity:
        0;

    transform:
        translateY(-140px);

    /* animation fires only after JS adds .linksy-ready */
    animation:
        none;

    pointer-events:
        none;

    will-change:
        transform,
        opacity;
}

/* Triggered by JS after position is set */
.linksy-floating-icon.linksy-ready {
    animation:
        linksyIconDrop 1.1s cubic-bezier(.22,
            .8,
            .32,
            1) forwards;
}


/* =====================================================
           SIMPLE DROP

           The icon simply falls down.

           NO:
           - scale
           - rotate
           - bounce
           - pop
        ====================================================== */

@keyframes linksyIconDrop {

    0% {

        opacity:
            0;

        transform:
            translateY(-140px);
    }


    15% {

        opacity:
            1;
    }


    100% {

        opacity:
            1;

        transform:
            translateY(0);
    }

}


/* =====================================================
           DRAGGING
        ====================================================== */

.linksy-icon-shell.linksy-is-dragging {

    cursor:
        grabbing;

    z-index:
        1000;
}


.linksy-icon-shell.linksy-is-dragging .linksy-floating-icon {

    /*
             * Completely stop animation while dragging.
             */

    animation:
        none !important;

    opacity:
        1;

    transform:
        translateY(0);

    box-shadow:
        0 20px 40px rgba(0,
            0,
            0,
            .30);
}


/* =====================================================
           HOVER
        ====================================================== */

.linksy-icon-shell:hover {

    z-index:
        50;
}


.linksy-icon-shell:hover .linksy-floating-icon {

    box-shadow:
        0 14px 30px rgba(0,
            0,
            0,
            .24);
}


/* =====================================================
           ICON SVG
        ====================================================== */

.linksy-floating-icon svg {

    width:
        21px;

    height:
        21px;

    display:
        block;

    pointer-events:
        none;
}


/* =====================================================
           ICON COLORS
        ====================================================== */

.linksy-icon-whatsapp {

    color:
        #25D366;
}


.linksy-icon-automation {

    color:
        #7657E8;
}


.linksy-icon-broadcast {

    color:
        #FF8A00;
}


.linksy-icon-leads {

    color:
        #F04438;
}


.linksy-icon-crm {

    color:
        #00A6A6;
}


.linksy-icon-commerce {

    color:
        #E84AA5;
}


.linksy-icon-api {

    color:
        #2F80ED;
}


.linksy-icon-engagement {

    color:
        #F2B01E;
}


/* =====================================================
           SUBTITLE
        ====================================================== */

.linksy-contact-heading h5 {

    max-width:
        900px;

    margin:
        7px auto 0;

    color:
        rgba(255, 255, 255, .82);

    font-family:
        "Roboto",
        sans-serif;

    font-size:
        1.05rem;

    line-height:
        1.4;

    font-weight:
        400;
}


/* =====================================================
           MAIN CONTENT
        ====================================================== */

.linksy-contact-main {

    width:
        100%;

    max-width:
        1180px;

    margin:
        0 auto;

    display:
        grid;

    grid-template-columns:
        1fr 1fr;

    gap:
        54px;

    align-items:
        center;
}


/* =====================================================
           IMAGE
        ====================================================== */

.linksy-contact-visual {

    width:
        100%;
}


.linksy-contact-visual img {

    display:
        block;

    width:
        100%;

    max-width:
        100%;

    height:
        auto;

    object-fit:
        cover;
}


/* =====================================================
           FORM
        ====================================================== */

.linksy-contact-form {

    width:
        100%;

    margin:
        0;

    padding:
        32px;

    border-radius:
        16px;

    background:
        rgba(255, 255, 255, 0.08);

    backdrop-filter:
        blur(15px);

    -webkit-backdrop-filter:
        blur(15px);

    border:
        1px solid rgba(255, 255, 255, 0.15);

    box-shadow:
        0 8px 32px rgba(0, 0, 0, 0.15);
}


.linksy-form-grid {

    display:
        grid;

    grid-template-columns:
        1fr;

    gap:
        15px;
}


.linksy-form-row {

    display:
        grid;

    grid-template-columns:
        1fr 1fr;

    gap:
        15px;
}


.linksy-form-field {

    width:
        100%;
}


.linksy-form-field label {

    display:
        block;

    margin:
        0 0 7px;

    color:
        #ffffff;

    font-size:
        13px;

    line-height:
        1.2;

    font-weight:
        600;
}


.linksy-form-field input,
.linksy-form-field select {

    width:
        100%;

    height:
        50px;

    padding:
        0 15px;

    border:
        1px solid rgba(255,
            255,
            255,
            .12);

    border-radius:
        8px;

    background:
        #ffffff;

    color:
        #222222;

    font-family:
        "Inter",
        Arial,
        sans-serif;

    font-size:
        14px;

    outline:
        none;

    transition:
        .2s ease;
}


.linksy-form-field input::placeholder {

    color:
        #888888;
}


.linksy-form-field input:focus,
.linksy-form-field select:focus {

    border-color:
        #25D366;

    box-shadow:
        0 0 0 2px rgba(37,
            211,
            102,
            .15);
}


/* =====================================================
           OTHER PLATFORM
        ====================================================== */

.linksy-other-platform {

    display:
        none;
}


.linksy-other-platform.active {

    display:
        block;
}


/* =====================================================
           CHECKBOX
        ====================================================== */

.linksy-checkbox-row {

    margin-top:
        1px;
}


.linksy-checkbox-label {

    display:
        flex;

    align-items:
        flex-start;

    gap:
        9px;

    cursor:
        pointer;

    color:
        rgba(255, 255, 255, .88);

    font-size:
        12px;

    line-height:
        1.45;
}


.linksy-checkbox-label input {

    width:
        15px;

    height:
        15px;

    flex:
        0 0 15px;

    margin:
        1px 0 0;

    accent-color:
        #25D366;

    cursor:
        pointer;
}


/* =====================================================
           SUBMIT BUTTON
        ====================================================== */

.linksy-submit {

    width:
        100%;

    height:
        50px;

    margin-top:
        1px;

    padding:
        0 20px;

    border:
        0;

    border-radius:
        8px;

    background:
        #ffffff;

    color:
        #154579;

    font-family:
        "Inter",
        Arial,
        sans-serif;

    font-size:
        15px;

    font-weight:
        700;

    cursor:
        pointer;

    transition:
        background .25s ease,
        color .25s ease,
        transform .25s ease;
}


.linksy-submit:hover {

    background:
        #25D366;

    color:
        #ffffff;

    transform:
        translateY(-1px);
}


/* =====================================================
           TABLET
        ====================================================== */

@media (max-width: 992px) {

    .linksy-contact-section {

        padding-left:
            30px;

        padding-right:
            30px;
    }


    .linksy-contact-main {

        gap:
            30px;
    }


    .linksy-contact-heading h1 {

        font-size:
            2.15rem;
    }


    .linksy-icon-playground {

        max-width:
            760px;

        height:
            100px;
    }


    .linksy-icon-shell,
    .linksy-floating-icon {

        width:
            40px;

        height:
            40px;
    }


    .linksy-floating-icon svg {

        width:
            19px;

        height:
            19px;
    }

}


/* =====================================================
           MOBILE
        ====================================================== */

@media (max-width: 767px) {

    .linksy-contact-section {

        padding:
            35px 20px 22px;
    }


    .linksy-contact-heading {

        margin-bottom:
            28px;
    }


    .linksy-contact-heading h1 {

        font-size:
            1.8rem;

        line-height:
            1.15;
    }


    .linksy-icon-playground {

        height:
            105px;

        margin:
            12px auto 4px;
    }


    .linksy-icon-shell,
    .linksy-floating-icon {

        width:
            34px;

        height:
            34px;
    }


    .linksy-floating-icon svg {

        width:
            16px;

        height:
            16px;
    }


    .linksy-contact-heading h5 {

        margin-top:
            7px;

        font-size:
            .92rem;
    }


    .linksy-contact-main {

        grid-template-columns:
            1fr;

        gap:
            25px;
    }


    .linksy-contact-visual {

        max-width:
            600px;

        margin:
            0 auto;
    }


    .linksy-form-row {

        grid-template-columns:
            1fr;

        gap:
            15px;
    }

}


/* =====================================================
           SMALL MOBILE
        ====================================================== */

@media (max-width: 480px) {

    .linksy-contact-section {

        padding-left:
            15px;

        padding-right:
            15px;
    }


    .linksy-contact-heading h1 {

        font-size:
            1.55rem;
    }


    .linksy-contact-heading h5 {

        font-size:
            .85rem;
    }


    .linksy-icon-playground {

        height:
            95px;
    }


    .linksy-icon-shell,
    .linksy-floating-icon {

        width:
            31px;

        height:
            31px;
    }


    .linksy-floating-icon svg {

        width:
            14px;

        height:
            14px;
    }

}


/* =====================================================
   FORM FEEDBACK BANNER
   Shown below the form fields, above the submit button.
   JS adds .is-success or .is-error to reveal it.
====================================================== */

.linksy-form-feedback {

    display:
        none;

    padding:
        12px 16px;

    border-radius:
        8px;

    font-family:
        "Inter", Arial, sans-serif;

    font-size:
        13.5px;

    font-weight:
        500;

    line-height:
        1.45;

    text-align:
        center;
}

.linksy-form-feedback.is-success {

    display:
        block;

    background:
        rgba(37, 211, 102, .15);

    border:
        1px solid rgba(37, 211, 102, .45);

    color:
        #d4fbe6;
}

.linksy-form-feedback.is-error {

    display:
        block;

    background:
        rgba(240, 68, 56, .15);

    border:
        1px solid rgba(240, 68, 56, .45);

    color:
        #ffd5d2;
}


/* =====================================================
   SUBMIT BUTTON — loading state
====================================================== */

.linksy-submit.is-loading {

    opacity:
        .7;

    cursor:
        not-allowed;

    pointer-events:
        none;
}

.linksy-submit.is-loading::after {

    content:
        "";

    display:
        inline-block;

    width:
        13px;

    height:
        13px;

    margin-left:
        9px;

    border:
        2px solid currentColor;

    border-top-color:
        transparent;

    border-radius:
        50%;

    vertical-align:
        middle;

    animation:
        linksyBtnSpin .65s linear infinite;
}

@keyframes linksyBtnSpin {
    to { transform: rotate(360deg); }
}


/* =====================================================
           REDUCED MOTION
        ====================================================== */

@media (prefers-reduced-motion: reduce) {

    .linksy-floating-icon,
    .linksy-floating-icon.linksy-ready {

        animation:
            none !important;

        opacity:
            1;

        transform:
            translateY(0);
    }

}



/* =========================================================
   PAGE HERO COMPONENT
   Reusable sky-blue banner that sits below the nav.
   Use on any page: set $page_title / $page_subtitle in PHP
   then include 'includes/page-hero.php'.
========================================================= */

.page-hero {
    width: 100%;
    padding: 72px 40px 52px;
    text-align: center;
    position: relative;
    z-index: 5;
}

.page-hero__inner {
    width: min(900px, 100%);
    margin: 0 auto;
}

.page-hero__title {
    margin: 0;
    font-family: 'DM Sans', Arial, sans-serif;
    font-size: clamp(2rem, 5vw, 3.2rem);
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -0.5px;
    color: #154579;
}

.page-hero__subtitle {
    margin: 14px auto 0;
    max-width: 600px;
    font-size: 16px;
    line-height: 1.6;
    color: #41515a;
}

@media (max-width: 768px) {
    .page-hero {
        padding: 52px 24px 36px;
    }

    .page-hero__title {
        font-size: clamp(1.6rem, 7vw, 2.2rem);
    }

    .page-hero__subtitle {
        font-size: 14px;
    }
}

/* =========================================================
   CONTACT PAGE OVERRIDES
   Remove the forced 100vh on the wrapper — let the dark
   section be exactly as tall as its content. No gaps.
========================================================= */

.hero-page--contact {
    min-height: 0 !important;
    height: auto !important;
}

/* Section is content-height only — no artificial stretching */
.hero-page--contact .linksy-contact-section {
    flex: none !important;
    min-height: 0 !important;
    display: block !important;
    justify-content: unset !important;
}

/* =========================================================
   STICKY HEADER
   Applied to both homepage and contact page.
========================================================= */

.hero-page {
    overflow: visible;
    /* allow sticky to work — was overflow:hidden */
}

.hero-nav {
    position: sticky !important;
    top: 18px !important;
    margin-top: 0px !important;
    z-index: 200 !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
}

/* our process */
.svc-process {
    /* Local Variables - No global :root pollution */
    --green: #25b0aa;
    --sky: #00b4d8;
    --light: #f8fafc;
    --ink: #0f172a;

    background: var(--light);
    padding: 36px 16px;
    position: relative;
    overflow: hidden;
    font-family: 'DM Sans', system-ui, -apple-system, sans-serif;
    color: var(--ink);
}

/* Isolated Box-Sizing Reset for section elements */
.svc-process *,
.svc-process *::before,
.svc-process *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

.svc-process__inner {
    max-width: 1200px;
    margin: 0 auto;
    position: relative;
}

.svc-process__heading {
    margin: 0;
    font-family: 'DM Sans', Arial, sans-serif;
    font-size: 50px;
    margin-bottom: 20px;
    font-weight: 800;
    text-align: center;
    line-height: 1.15;
    letter-spacing: -0.5px;
    color: #154579;
}

.svc-process__steps {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 12px;
    position: relative;
    z-index: 1;
    padding-top: 18px;
}

/* Background SVG Wave Beam */
.svc-process__ribbon {
    position: absolute;
    top: 52px;
    left: 3%;
    width: 94%;
    height: 40px;
    z-index: 0;
    pointer-events: none;
}

/* Individual Process Cards */
.svc-process .svc-step {
    background: #ffffff;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 14px;
    padding: 20px 14px 16px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    position: relative;
    z-index: 1;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.03);
    transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1),
        box-shadow 0.3s ease,
        border-color 0.3s ease;
}

/* Alternating staggered visual rhythm on desktop */
.svc-process .svc-step:nth-child(even) {
    transform: translateY(14px);
}

.svc-process .svc-step:hover,
.svc-process .svc-step.is-active {
    transform: translateY(-8px) scale(1.02);
    box-shadow: 0 12px 24px -6px rgba(37, 176, 170, 0.25);
    border-color: var(--green);
    z-index: 5;
}

.svc-process .svc-step:nth-child(even):hover,
.svc-process .svc-step:nth-child(even).is-active {
    transform: translateY(6px) scale(1.02);
}

/* Floating Number Badge */
.svc-process .svc-step__circle {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--green), var(--sky));
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Poppins', sans-serif;
    font-weight: 700;
    font-size: 0.95rem;
    color: #ffffff;
    margin-bottom: 12px;
    box-shadow: 0 4px 12px rgba(37, 176, 170, 0.35);
    position: absolute;
    top: -18px;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.svc-process .svc-step:hover .svc-step__circle {
    transform: scale(1.1) rotate(6deg);
    box-shadow: 0 6px 16px rgba(0, 180, 216, 0.5);
}

.svc-process .svc-step__icon {
    width: 32px;
    height: 32px;
    margin-top: 10px;
    margin-bottom: 10px;
    color: var(--green);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.3s ease, color 0.3s ease;
}

.svc-process .svc-step:hover .svc-step__icon {
    transform: scale(1.15);
    color: var(--sky);
}

.svc-process .svc-step__icon svg {
    width: 100%;
    height: 100%;
    stroke-width: 1.8;
}

.svc-process .svc-step__title {
    font-family: 'Poppins', sans-serif;
    font-weight: 700;
    font-size: 0.85rem;
    color: var(--ink);
    line-height: 1.25;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    margin-bottom: 8px;
}

.svc-process .svc-step__desc {
    font-family: 'DM Sans', sans-serif;
    font-size: 0.78rem;
    color: rgba(15, 23, 42, 0.75);
    line-height: 1.35;
    font-weight: 400;
}

/* --- RESPONSIVE BREAKPOINTS ----------------------------- */
@media (max-width: 1024px) {
    .svc-process__steps {
        grid-template-columns: repeat(3, 1fr);
        gap: 20px 14px;
        padding-top: 16px;
    }

    .svc-process .svc-step:nth-child(even) {
        transform: none;
    }

    .svc-process .svc-step:nth-child(even):hover {
        transform: translateY(-6px);
    }

    .svc-process__ribbon {
        display: none;
    }
}

@media (max-width: 640px) {
    .svc-process {
        padding: 20px 12px;
    }

    .svc-process__heading {
        margin-bottom: 20px;
    }

    .svc-process__steps {
        grid-template-columns: 1fr;
        gap: 14px;
        padding-top: 10px;
    }

    .svc-process .svc-step {
        flex-direction: row;
        text-align: left;
        padding: 14px 16px;
        align-items: center;
    }

    .svc-process .svc-step:hover,
    .svc-process .svc-step.is-active {
        transform: translateX(4px);
    }

    .svc-process .svc-step__circle {
        position: static;
        margin-bottom: 0;
        margin-right: 12px;
        flex-shrink: 0;
        width: 34px;
        height: 34px;
        font-size: 0.85rem;
    }

    .svc-process .svc-step__icon {
        margin: 0 12px 0 0;
        width: 26px;
        height: 26px;
        flex-shrink: 0;
    }

    .svc-process .svc-step__content {
        flex: 1;
    }

    .svc-process .svc-step__title {
        font-size: 0.82rem;
        margin-bottom: 2px;
    }

    .svc-process .svc-step__desc {
        font-size: 0.75rem;
    }
}

/* why choose us social media  */
/* --- ISOLATED SCOPE ------------------------------------- */
.smm-feature-split {
    --smm-navy: #0f3b7d;
    --smm-teal: #14b8a6;
    --smm-sky: #00b4d8;
    --smm-ink: #0f172a;
    --smm-muted: #475569;
    --smm-light: #f8fafc;

    background: linear-gradient(180deg, #ffffff 0%, var(--smm-light) 100%);
    padding: 70px 20px;
    position: relative;
    overflow: hidden;
    font-family: 'DM Sans', system-ui, -apple-system, sans-serif;
    color: var(--smm-ink);
}

.smm-feature-split *,
.smm-feature-split *::before,
.smm-feature-split *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

.smm-feature-split__container {
    padding-bottom: 50px;
    max-width: 1220px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 56px;
    align-items: start;
}

/* Content Column */
.smm-feature-split__tag {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 16px;
    border-radius: 30px;
        background: rgb(245 245 245 / 62%);
    border: 1px solid rgba(20, 184, 166, 0.25);
    color: var(--smm-teal);
    font-family: 'Poppins', sans-serif;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    margin-bottom: 20px;
}

.smm-feature-split__tag-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--smm-teal);
    box-shadow: 0 0 8px var(--smm-teal);
}

.smm-feature-split__heading {
    font-family: 'Poppins', system-ui, -apple-system, sans-serif;
    font-size: clamp(1.85rem, 3.2vw, 2.5rem);
    font-weight: 800;
    line-height: 1.25;
    color: var(--smm-ink);
    margin-bottom: 22px;
    letter-spacing: -0.02em;
}

.smm-feature-split__heading span {
    background: linear-gradient(135deg, var(--smm-navy), var(--smm-teal));
    -webkit-background-clip: text;
    -webkit-text-fill-color: #15aaa3;
}

.smm-feature-split__body {
    font-size: 1.02rem;
    line-height: 1.7;
    color: var(--smm-muted);
    margin-bottom: 18px;
}

.smm-feature-split__body strong {
    color: var(--smm-navy);
    font-weight: 700;
}

/* Platform Highlights Grid */
.smm-feature-split__platforms {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    margin-top: 28px;
    padding-top: 20px;
    border-top: 1px dashed rgba(15, 23, 42, 0.12);
}

.smm-feature-split {
    overflow: visible !important;
    /* Prevent overflow: hidden from blocking sticky scroll */
}

.smm-feature-split__chip {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    background: #ffffff;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 12px;
    font-family: 'Poppins', sans-serif;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--smm-ink);
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.03);
    transition: transform 0.25s ease, border-color 0.25s ease;
}

.smm-feature-split__chip:hover {
    transform: translateY(-3px);
    border-color: var(--smm-teal);
}

.smm-feature-split__chip-icon {
    width: 24px;
    height: 24px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(15, 59, 125, 0.08);
    color: var(--smm-navy);
}

/* Interactive Visual Frame */
.smm-feature-split__graphic-wrap {
    position: sticky;
    top: 100px;
    /* Distance from top of screen when pinned on scroll */
    perspective: 1000px;
    z-index: 10;
}

.smm-feature-split__card {
    position: relative;
    background: #ffffff;
    border-radius: 24px;
    padding: 16px;
    box-shadow: 0 24px 48px -12px rgba(15, 59, 125, 0.18);
    border: 1px solid rgba(255, 255, 255, 0.8);
    transition: transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.smm-feature-split__graphic-wrap:hover .smm-feature-split__card {
    transform: rotateY(-3deg) rotateX(2deg) translateY(-4px);
}

.smm-feature-split__img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 16px;
    object-fit: cover;
}

/* Floating Badges over Graphic */
.smm-feature-split__float {
    position: absolute;
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(8px);
    border: 1px solid rgba(255, 255, 255, 0.6);
    padding: 10px 16px;
    border-radius: 14px;
    box-shadow: 0 12px 24px rgba(15, 23, 42, 0.12);
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: 'Poppins', sans-serif;
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--smm-ink);
    animation: smmFloat 4s ease-in-out infinite alternate;
    z-index: 2;
}

.smm-feature-split__float--top {
    top: -16px;
    right: 20px;
    animation-delay: 0s;
}

.smm-feature-split__float--bottom {
    bottom: -18px;
    left: 20px;
    animation-delay: 2s;
}

.smm-feature-split__float-badge {
    width: 28px;
    height: 28px;
    border-radius: 8px;
    background: linear-gradient(135deg, var(--smm-navy), var(--smm-teal));
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
}

@keyframes smmFloat {
    0% {
        transform: translateY(0px);
    }

    100% {
        transform: translateY(-10px);
    }
}

/* Responsive Design */
@media (max-width: 992px) {
    .smm-feature-split__container {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .smm-feature-split {
        padding: 48px 16px;
    }

    .smm-feature-split__float--top {
        top: -10px;
        right: 10px;
    }

    .smm-feature-split__float--bottom {
        bottom: -10px;
        left: 10px;
    }
}

@media (max-width: 576px) {
    .smm-feature-split__platforms {
        grid-template-columns: 1fr;
    }
}
/* Creative Strategy */
    /* --- ISOLATED BRAND PALETTE & UNIQUE NAMESPACING (.creative-strategy-*) --- */
    .creative-strategy-unique-smm-wrap {
      --cs-u-navy: #154579;
      --cs-u-teal: #23A6A5;
      --cs-u-mint: #DDF7E7;
      --cs-u-white: #ffffff;

      background: var(--cs-u-navy) !important;
      color: var(--cs-u-white);
      padding: 70px 20px;
      font-family: 'DM Sans', system-ui, -apple-system, sans-serif;
      position: relative;
      overflow: hidden;
    }

    .creative-strategy-unique-smm-wrap *,
    .creative-strategy-unique-smm-wrap *::before,
    .creative-strategy-unique-smm-wrap *::after {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
    }

    .creative-strategy-unique-container {
      max-width: 1100px;
      margin: 0 auto;
      position: relative;
      z-index: 2;
    }

    /* Background Doodle SVG */
    .creative-strategy-unique-bg-svg {
      position: absolute;
      pointer-events: none;
      z-index: 1;
      stroke-linecap: round;
      stroke-linejoin: round;
      fill: none;
      animation: creativeStrategyFloatAnim 6s ease-in-out infinite alternate;
    }

    @keyframes creativeStrategyFloatAnim {
      0% { transform: translateY(0) rotate(0deg); }
      100% { transform: translateY(-10px) rotate(4deg); }
    }

    /* Header Styling */
    .creative-strategy-unique-head-box {
      text-align: center;
      max-width: 750px;
      margin: 0 auto 50px;
      position: relative;
    }

    .creative-strategy-unique-badge-tag {
      display: inline-block;
      font-family: 'Poppins', sans-serif;
      font-size: 0.8rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.1em;
      color: var(--cs-u-navy);
      background: var(--cs-u-mint);
      padding: 6px 18px;
      border-radius: 255px 15px 225px 15px/15px 225px 15px 255px;
      transform: rotate(-1.5deg);
      margin-bottom: 12px;
    }

    .creative-strategy-unique-main-title {
      font-family: 'Poppins', sans-serif;
      font-size: clamp(1.8rem, 3.2vw, 2.5rem);
      font-weight: 800;
      line-height: 1.25;
      color: var(--cs-u-white);
      letter-spacing: -0.02em;
    }

    .creative-strategy-unique-main-title span {
      color: var(--cs-u-mint);
    }

    /* --- CARD-FREE CONNECTED ROADMAP / TIMELINE LAYOUT --- */
    .creative-strategy-unique-roadmap-track {
      position: relative;
      max-width: 960px;
      margin: 0 auto 50px;
      padding: 20px 0;
    }

    /* Dashed Connecting Line down the center */
    .creative-strategy-unique-roadmap-track::before {
      content: '';
      position: absolute;
      top: 0;
      bottom: 0;
      left: 50%;
      width: 2px;
      border-left: 2px dashed rgba(35, 166, 165, 0.5);
      transform: translateX(-50%);
      z-index: 1;
    }

    .creative-strategy-unique-step-node {
      position: relative;
      display: flex;
      align-items: center;
      margin-bottom: 45px;
      z-index: 2;
      opacity: 0;
      transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1), transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
      will-change: opacity, transform;
    }

    /* Alternating Left/Right Placement */
    .creative-strategy-unique-step-node:nth-child(odd) {
      flex-direction: row-reverse;
      transform: translateX(-40px);
    }

    .creative-strategy-unique-step-node:nth-child(even) {
      flex-direction: row;
      transform: translateX(40px);
    }

    .creative-strategy-unique-step-node.creative-strategy-in-view {
      opacity: 1;
      transform: translateX(0);
    }

    /* Staggered Scroll-In Delays */
    .creative-strategy-unique-step-node:nth-child(1) { transition-delay: 0.05s; }
    .creative-strategy-unique-step-node:nth-child(2) { transition-delay: 0.12s; }
    .creative-strategy-unique-step-node:nth-child(3) { transition-delay: 0.19s; }
    .creative-strategy-unique-step-node:nth-child(4) { transition-delay: 0.26s; }
    .creative-strategy-unique-step-node:nth-child(5) { transition-delay: 0.33s; }
    .creative-strategy-unique-step-node:nth-child(6) { transition-delay: 0.40s; }

    /* Content Side */
    .creative-strategy-unique-info-box {
      width: 44%;
      padding: 10px;
      cursor: pointer;
    }

    .creative-strategy-unique-step-node:nth-child(odd) .creative-strategy-unique-info-box {
      text-align: right;
    }

    .creative-strategy-unique-step-node:nth-child(even) .creative-strategy-unique-info-box {
      text-align: left;
    }

    .creative-strategy-unique-step-title {
      font-family: 'Poppins', sans-serif;
      font-size: 1.15rem;
      font-weight: 700;
      color: var(--cs-u-white);
      margin-bottom: 6px;
      transition: color 0.3s ease, transform 0.3s ease;
    }

    .creative-strategy-unique-step-node:hover .creative-strategy-unique-step-title {
      color: var(--cs-u-mint);
      transform: translateY(-2px);
    }

    .creative-strategy-unique-step-desc {
      font-size: 0.88rem;
      line-height: 1.6;
      color: rgba(255, 255, 255, 0.82);
    }

    /* Central Interactive Hub Circle */
    .creative-strategy-unique-hub-col {
      width: 12%;
      display: flex;
      justify-content: center;
      position: relative;
    }

    .creative-strategy-unique-circle-badge {
      width: 48px;
      height: 48px;
      border-radius: 50%;
      background: var(--cs-u-mint);
      color: var(--cs-u-navy);
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: 'Poppins', sans-serif;
      font-size: 0.95rem;
      font-weight: 800;
      border: 3px solid var(--cs-u-navy);
      box-shadow: 0 0 0 3px var(--cs-u-teal);
      transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), background-color 0.3s ease, color 0.3s ease, box-shadow 0.3s ease;
      cursor: pointer;
    }

    .creative-strategy-unique-step-node:hover .creative-strategy-unique-circle-badge {
      transform: scale(1.25) rotate(10deg);
      background: var(--cs-u-teal);
      color: var(--cs-u-white);
      box-shadow: 0 0 0 4px var(--cs-u-mint), 0 0 20px rgba(35, 166, 165, 0.8);
    }

    /* Dynamic Hover Image Preview Slot (Opposite Side) */
    .creative-strategy-unique-preview-col {
      width: 44%;
      display: flex;
      align-items: center;
      justify-content: center;
      min-height: 120px;
    }

    .creative-strategy-unique-preview-pic {
      max-width: 450px;
    width: 100%;
    height: 250px;
      object-fit: cover;
      border-radius: 12px;
      border: 2px solid var(--cs-u-mint);
      box-shadow: 0 10px 25px rgba(0,0,0,0.4);
      
      /* Base desktop hidden state */
      opacity: 0;
      transform: scale(0.85) translateY(10px);
      transition: opacity 0.35s ease, transform 0.35s cubic-bezier(0.175, 0.885, 0.32, 1.275);
      pointer-events: none;
    }

    /* Desktop Hover Effect */
    @media (min-width: 769px) {
      .creative-strategy-unique-step-node:hover .creative-strategy-unique-preview-pic {
        opacity: 1;
        transform: scale(1) translateY(0);
      }
    }

    /* --- COMPACT BOTTOM CTA AREA --- */
    .creative-strategy-unique-cta-wrap {
      position: relative;
      padding: 30px 20px;
      text-align: center;
      border-top: 1px dashed rgba(35, 166, 165, 0.4);
      opacity: 0;
      transform: translateY(20px);
      transition: all 0.6s cubic-bezier(0.16, 1, 0.3, 1) 0.45s;
    }

    .creative-strategy-unique-cta-wrap.creative-strategy-in-view {
      opacity: 1;
      transform: translateY(0);
    }

    .creative-strategy-unique-cta-inner {
      max-width: 600px;
      margin: 0 auto;
    }

    .creative-strategy-unique-cta-heading {
      font-family: 'Poppins', sans-serif;
      font-size: 1.35rem;
      font-weight: 800;
      color: var(--cs-u-white);
      margin-bottom: 6px;
    }

    .creative-strategy-unique-cta-sub {
      font-size: 0.9rem;
      color: var(--cs-u-mint);
      margin-bottom: 20px;
    }

    .creative-strategy-unique-action-btn {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      padding: 12px 32px;
      border-radius: 255px 15px 225px 15px/15px 225px 15px 255px;
      background: var(--cs-u-mint);
      color: var(--cs-u-navy);
      font-family: 'Poppins', sans-serif;
      font-size: 0.9rem;
      font-weight: 800;
      text-decoration: none;
      letter-spacing: 0.03em;
      border: 2px solid var(--cs-u-teal);
      box-shadow: 3px 4px 0px var(--cs-u-teal);
      transition: all 0.25s ease;
    }

    .creative-strategy-unique-action-btn:hover {
      transform: translate(-2px, -2px) scale(1.03);
      box-shadow: 5px 6px 0px var(--cs-u-teal);
      background: var(--cs-u-white);
    }

    /* --- FULLY RESPONSIVE MOBILE & TABLET STYLES --- */
    @media (max-width: 768px) {
      .creative-strategy-unique-smm-wrap {
        padding: 50px 15px;
      }

      .creative-strategy-unique-head-box {
        margin-bottom: 35px;
      }

      .creative-strategy-unique-roadmap-track::before {
        left: 20px;
        transform: none;
      }

      .creative-strategy-unique-step-node,
      .creative-strategy-unique-step-node:nth-child(odd),
      .creative-strategy-unique-step-node:nth-child(even) {
        flex-direction: column !important;
        align-items: flex-start;
        margin-bottom: 35px;
        padding-left: 55px;
        transform: translateY(30px) !important;
      }

      .creative-strategy-unique-hub-col {
        position: absolute;
        left: 0;
        top: 0;
        width: 40px;
        justify-content: flex-start;
      }

      .creative-strategy-unique-circle-badge {
        width: 40px;
        height: 40px;
        font-size: 0.85rem;
      }

      .creative-strategy-unique-info-box {
        width: 100% !important;
        padding: 0 !important;
        text-align: left !important;
      }

      .creative-strategy-unique-step-title {
        font-size: 1.1rem;
      }

      .creative-strategy-unique-preview-col {
        width: 100% !important;
        min-height: auto;
        justify-content: flex-start;
        margin-top: 12px;
      }

      .creative-strategy-unique-preview-pic {
        max-width: 100%;
        height: 250px;
        opacity: 1; /* Always visible on mobile devices */
        transform: scale(1) translateY(0);
        pointer-events: auto;
      }

      .creative-strategy-unique-action-btn {
        width: 100%;
        justify-content: center;
      }
    }


/* =========================================================
   HERO SECTION — RESPONSIVE FIXES
   Overrides the accumulated patch rules above.
   Breakpoints: 1024 / 768 / 480 / 360
========================================================= */

/* -- Heading: allow wrapping, never overflow ----------- */
.hero-intro h1 {
    white-space: normal !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
    display: block !important;
    width: auto !important;
    text-align: center !important;
}

/* -- API badge: scale with heading, never overflow ------ */
.hero-intro h1 .api-badge {
    vertical-align: middle !important;
    flex: none !important;
}

/* -- Buttons: full-width stack on mobile --------------- */
.hero-buttons {
    display: flex !important;
    justify-content: center !important;
    gap: 14px !important;
    flex-wrap: wrap !important;
    padding: 0 20px !important;
}

.hero-buttons .primary-button,
.hero-buttons .secondary-button {
    flex: 0 1 auto !important;
    max-width: 100% !important;
    text-align: center !important;
}

/* -- Tablet = 1023px ----------------------------------- */
@media (max-width: 1023px) {
    .hero-intro {
        margin-top: 40px !important;
        padding: 0 24px !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    .hero-intro h1 {
        font-size: 80px !important;
        letter-spacing: -3px !important;
        line-height: 1 !important;
    }

    .hero-intro h1 .api-badge {
        width: 56px !important;
        height: 56px !important;
    }

    .hero-intro p {
        font-size: 15px !important;
    }

    .visual-wrap {
        height: 380px !important;
        margin-top: 32px !important;
    }

    .character {
        width: 160px !important;
    }
}

/* -- Mobile = 767px ------------------------------------ */
@media (max-width: 767px) {
    .hero-intro {
        margin-top: 28px !important;
        padding: 0 16px !important;
    }

    .hero-intro h1 {
        font-size: clamp(34px, 9vw, 58px) !important;
        letter-spacing: -2px !important;
        line-height: 1.05 !important;
    }

    .hero-intro h1 .api-badge {
        width: 44px !important;
        height: 44px !important;
        margin: 0 4px 4px !important;
    }

    .hero-intro p {
        font-size: 14px !important;
        line-height: 1.65 !important;
    }

    .hero-buttons {
        flex-direction: column !important;
        align-items: center !important;
        gap: 12px !important;
        margin-top: 22px !important;
    }

    .hero-buttons .primary-button,
    .hero-buttons .secondary-button {
        width: 100% !important;
        max-width: 320px !important;
        justify-content: center !important;
        min-height: 50px !important;
        padding: 14px 20px !important;
    }

    .visual-wrap {
        height: 300px !important;
        margin-top: 28px !important;
    }

    .character {
        width: 120px !important;
        bottom: -5px !important;
    }

    /* floating engagement badge — hide on very small */
    .floating-note {
        transform: scale(0.78) !important;
        transform-origin: right top !important;
    }
}

/* -- Small phones = 480px ------------------------------ */
@media (max-width: 480px) {
    .hero-intro h1 {
        font-size: clamp(28px, 10vw, 44px) !important;
        letter-spacing: -1.5px !important;
    }

    .hero-intro h1 .api-badge {
        width: 36px !important;
        height: 36px !important;
    }

    .hero-intro p {
        font-size: 13.5px !important;
    }

    .hero-buttons .primary-button,
    .hero-buttons .secondary-button {
        max-width: 100% !important;
        font-size: 13px !important;
    }

    .visual-wrap {
        height: 250px !important;
    }

    .character {
        width: 90px !important;
    }

    /* hide floating notes — too crowded */
    .floating-note {
        display: none !important;
    }
}

/* -- Very small = 360px -------------------------------- */
@media (max-width: 360px) {
    .hero-intro {
        padding: 0 12px !important;
    }

    .hero-intro h1 {
        font-size: 28px !important;
        letter-spacing: -1px !important;
    }

    .visual-wrap {
        height: 220px !important;
    }
}

/* =========================================================
   HERO IMAGE OVERFLOW + CAMPAIGN GAP — RESPONSIVE FIXES
========================================================= */

/* Keep the visual wrap from bleeding outside the viewport */
.hero-page {
    /* overflow-x:clip blocks horizontal bleed WITHOUT creating a scroll container.
       overflow-x:hidden would implicitly set overflow-y:auto and kill position:sticky */
    overflow-x: clip !important;
}

/* overflow:hidden only on mobile (3D overflow fix) — desktop must stay visible */
.visual-wrap {
    max-width: 100% !important;
    /* NO overflow:hidden here — it clips the 3D-transformed screenshot on desktop */
}

/* Flatten 3D on mobile — perspective + rotateX causes overflow */
@media (max-width: 767px) {
    .visual-wrap {
        overflow: hidden !important;   /* mobile only */
        perspective: none !important;
        transform-style: flat !important;
        transform: none !important;
        height: auto !important;
        min-height: 0 !important;
        margin-top: 24px !important;
        padding: 0 16px !important;
    }

    .screenshot-frame {
        position: relative !important;
        left: auto !important;
        top: auto !important;
        transform: none !important;
        width: 100% !important;
        max-width: 100% !important;
        border-radius: 14px !important;
        box-shadow: 0 10px 30px rgba(34, 79, 111, 0.18) !important;
        margin: 0 auto !important;
    }

    .screenshot-frame img {
        width: 100% !important;
        height: auto !important;
        display: block !important;
        border-radius: 12px !important;
    }

    /* Characters sit below the image naturally */
    .character {
        position: static !important;
        display: none !important;
    }

    .white-floor {
        display: none !important;
    }
}

@media (max-width: 480px) {
    .visual-wrap {
        padding: 0 12px !important;
        margin-top: 20px !important;
    }
}

/* -- Campaign section: kill the massive top gap on mobile - */
@media (max-width: 767px) {
    .campaign-section {
        margin-top: 40px !important;
    }
}

@media (max-width: 480px) {
    .campaign-section {
        margin-top: 28px !important;
    }
}

@media (max-width: 360px) {
    .campaign-section {
        margin-top: 20px !important;
    }
}

/* =========================================================
   CAMPAIGN SECTION — MOBILE RESPONSIVE OVERHAUL
   The section uses position:absolute + fixed height for its
   desktop slider. On mobile we collapse it to normal flow.
========================================================= */

@media (max-width: 767px) {

    /* -- Section shell ------------------------------------- */
    .campaign-section {
        height: auto !important;
        min-height: 0 !important;
        padding: 48px 20px 56px !important;
        overflow: visible !important;
        display: block !important;
        position: relative !important;
    }

    /* -- Hide the floating character — overlaps content ---- */
    .campaign-character {
        display: none !important;
    }

    /* -- Revert absolute positioning to normal flow ------- */
    .campaign-copy,
    .campaign-feature {
        position: relative !important;
        left: auto !important;
        right: auto !important;
        top: auto !important;
        bottom: auto !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
        animation: none !important;
        pointer-events: auto !important;
    }

    /* -- Campaign copy (slide 1 text) ---------------------- */
    .campaign-copy {
        text-align: center !important;
        margin-bottom: 28px !important;
        padding: 0 !important;
    }

    .campaign-copy small {
        font-size: 10px !important;
        letter-spacing: 1.2px !important;
    }

    .campaign-copy h2 {
        font-size: clamp(32px, 9vw, 52px) !important;
        line-height: 1 !important;
        letter-spacing: -2px !important;
        margin: 14px 0 16px !important;
        white-space: normal !important;
    }

    .campaign-copy h2 em br {
        display: inline !important;
    }

    .campaign-copy p {
        font-size: 14px !important;
        line-height: 1.6 !important;
        margin: 0 auto !important;
        max-width: 100% !important;
    }

    /* -- Feature card (slide 2 content) ------------------- */
    .campaign-feature {
        min-height: 0 !important;
        padding: 28px 22px 80px !important;
        border-radius: 18px !important;
    }

    .campaign-feature h3 {
        font-size: clamp(22px, 6vw, 34px) !important;
        line-height: 1.1 !important;
        letter-spacing: -1px !important;
        max-width: 100% !important;
        margin: 14px 0 12px !important;
    }

    .campaign-feature > p {
        font-size: 13.5px !important;
        line-height: 1.55 !important;
        max-width: 100% !important;
        margin-bottom: 0 !important;
    }

    /* -- Flow steps ---------------------------------------- */
    .campaign-flow {
        position: relative !important;
        left: auto !important;
        right: auto !important;
        bottom: auto !important;
        top: auto !important;
        margin-top: 20px !important;
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 8px !important;
        justify-content: flex-start !important;
        animation: none !important;
        transform: none !important;
    }

    .campaign-flow span,
    .campaign-flow b {
        font-size: 11px !important;
        padding: 9px 12px !important;
    }

    /* -- Floating channel badges --------------------------- */
    .channel-badge {
        display: none !important;
    }

    /* -- Dot indicators ------------------------------------ */
    .campaign-dots {
        position: static !important;
        transform: none !important;
        display: flex !important;
        justify-content: center !important;
        margin-top: 20px !important;
    }

    /* -- slide-two state: feature card also shown normally - */
    .campaign-section.slide-two .campaign-feature {
        background: linear-gradient(135deg, #173f6f, #154579 55%, #12365f) !important;
        border: 1px solid rgba(37, 176, 170, .55) !important;
        border-radius: 18px !important;
        padding: 28px 22px 40px !important;
        text-align: center !important;
        min-height: 0 !important;
        top: auto !important;
    }

    .campaign-section.slide-two .campaign-feature h3 {
        font-size: clamp(24px, 7vw, 38px) !important;
        letter-spacing: -1.5px !important;
        line-height: 1.05 !important;
        margin: 14px auto 16px !important;
        max-width: 100% !important;
    }

    .campaign-section.slide-two .campaign-feature > p {
        font-size: 13.5px !important;
        max-width: 100% !important;
        margin: 0 auto !important;
    }

    /* hide the decorative text watermark on mobile */
    .campaign-section.slide-two .campaign-feature:before {
        display: none !important;
    }

    .campaign-section.slide-two .campaign-feature:after {
        display: none !important;
    }

    /* -- Stat badge ---------------------------------------- */
    .campaign-section.slide-two .campaign-stat {
        display: none !important;
    }

    /* -- section decorative watermark text ---------------- */
    .campaign-section:before {
        display: none !important;
    }
}

/* -- Very small phones = 400px --------------------------- */
@media (max-width: 400px) {
    .campaign-section {
        padding: 36px 14px 44px !important;
    }

    .campaign-copy h2 {
        font-size: 30px !important;
        letter-spacing: -1.5px !important;
    }

    .campaign-feature {
        padding: 22px 16px 60px !important;
    }

    .campaign-feature h3 {
        font-size: 22px !important;
    }
}

/* =========================================================
   CAMPAIGN — CHARACTER + BADGE FIX (mobile)
========================================================= */

@media (max-width: 767px) {

    /* -- Bring character back, anchored to bottom of section,
          small enough not to overlap the card content ------ */
    .campaign-character {
        display: block !important;
        position: absolute !important;
        /* sit at the bottom-right of the section */
        bottom: 0 !important;
        right: 0 !important;
        top: auto !important;
        left: auto !important;
        /* small enough to stay decorative, not intrusive */
        width: 110px !important;
        /* behind card content so it never obscures text */
        z-index: 0 !important;
        opacity: 0.85 !important;
        transform: rotate(2deg) !important;
        pointer-events: none !important;
        filter: drop-shadow(0 8px 6px rgba(5,24,52,0.25)) !important;
        /* re-enable entrance animation */
        transition: opacity 0.9s ease 0.15s, transform 1s cubic-bezier(0.16,1,0.3,1) 0.15s !important;
    }

    /* keep the card above the character */
    .campaign-feature {
        position: relative !important;
        z-index: 1 !important;
    }

    /* add bottom padding so the character doesn't sit behind the card */
    .campaign-section {
        padding-bottom: 120px !important;
    }

    /* -- Badges: pull out of absolute, stack as inline pills - */
    .channel-badge {
        display: inline-flex !important;
        position: static !important;
        top: auto !important;
        right: auto !important;
        bottom: auto !important;
        left: auto !important;
        transform: none !important;
        animation: none !important;
        font-size: 10px !important;
        padding: 6px 10px !important;
        border-radius: 20px !important;
        margin: 0 !important;
    }

    /* wrap them in a row just above the card heading */
    .campaign-feature {
        display: flex !important;
        flex-direction: column !important;
    }

    /* badges row — appears between the label and h3 */
    .campaign-label {
        order: 0 !important;
    }

    /* inject a flex row for the badges */
    .badge-wa   { order: 1 !important; align-self: flex-start !important; margin-bottom: 0 !important; }
    .badge-shop { order: 1 !important; align-self: flex-start !important; }
    .badge-analytics { order: 1 !important; align-self: flex-start !important; }

    /* group badges on one line by wrapping them in a row */
    .campaign-feature .channel-badge {
        margin-right: 6px !important;
        margin-bottom: 10px !important;
    }

    /* force badges before h3 */
    .campaign-feature h3   { order: 2 !important; }
    .campaign-feature > p  { order: 3 !important; }
    .campaign-flow         { order: 4 !important; }
    .campaign-glow         { order: 5 !important; display: none !important; }
}

@media (max-width: 400px) {
    .campaign-character {
        width: 85px !important;
    }

    .campaign-section {
        padding-bottom: 96px !important;
    }
}

/* =========================================================
   CAMPAIGN — FINAL MOBILE FIX (badges inline, flow fix,
   spacing fix, character sizing)
========================================================= */

@media (max-width: 767px) {

    /* -- 1. Badges in ONE horizontal row ------------------- */
    .campaign-feature {
        /* already flex column from previous rule — we need a
           dedicated badges row before the heading */
        display: block !important;   /* reset to block */
        padding: 22px 20px 22px !important;
        position: relative !important;
        z-index: 1 !important;
        overflow: visible !important;
    }

    /* badges wrapper — inject them as a flex row */
    .campaign-feature .badge-wa,
    .campaign-feature .badge-shop,
    .campaign-feature .badge-analytics {
        display: inline-flex !important;
        position: static !important;
        top: auto !important; right: auto !important;
        bottom: auto !important; left: auto !important;
        transform: none !important;
        animation: none !important;
        vertical-align: middle !important;
        font-size: 10px !important;
        padding: 5px 10px !important;
        border-radius: 20px !important;
        margin: 0 6px 0 0 !important;
        white-space: nowrap !important;
    }

    /* row container for the three badges */
    .campaign-feature .campaign-label {
        display: block !important;
        margin-bottom: 8px !important;
    }

    /* badges sit in one line after the label */
    .campaign-feature::before {
        display: none !important;   /* kill watermark text */
    }

    /* Wrap badges in a flex row using CSS without changing HTML */
    .badge-wa {
        /* First badge triggers row start via clear float trick */
    }

    /* Use a pseudo-row: wrap all three in a single-line flex area */
    .campaign-feature .badge-wa,
    .campaign-feature .badge-shop,
    .campaign-feature .badge-analytics {
        float: left !important;
        clear: none !important;
        margin-bottom: 12px !important;
    }

    /* clearfix after badges before h3 */
    .campaign-feature h3 {
        clear: both !important;
        font-size: clamp(20px, 5.5vw, 30px) !important;
        line-height: 1.2 !important;
        letter-spacing: -0.5px !important;
        margin: 4px 0 10px !important;
        max-width: 100% !important;
    }

    .campaign-feature > p {
        font-size: 13px !important;
        line-height: 1.55 !important;
        margin-bottom: 16px !important;
    }

    /* -- 2. Flow steps — one per line, no merge ------------ */
    .campaign-flow {
        position: static !important;
        left: auto !important; right: auto !important;
        bottom: auto !important; top: auto !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 8px !important;
        margin-top: 14px !important;
        flex-wrap: nowrap !important;
        transform: none !important;
        animation: none !important;
    }

    .campaign-flow i {
        /* arrow between steps */
        transform: rotate(90deg) !important;
        display: block !important;
        font-size: 14px !important;
        margin: 0 !important;
        line-height: 1 !important;
    }

    .campaign-flow span,
    .campaign-flow b {
        font-size: 12px !important;
        padding: 10px 14px !important;
        width: 100% !important;
        text-align: center !important;
        white-space: normal !important;
        box-sizing: border-box !important;
    }

    /* -- 3. Kill extra bottom padding — no empty space ------ */
    .campaign-section {
        padding-bottom: 20px !important;
    }

    /* -- 4. Character — proper size, bottom-right corner ---- */
    .campaign-character {
        display: block !important;
        position: relative !important;
        width: 140px !important;
        height: auto !important;
        margin: 16px auto 0 !important;
        bottom: auto !important;
        right: auto !important;
        top: auto !important;
        left: auto !important;
        z-index: 1 !important;
        opacity: 1 !important;
        transform: rotate(2deg) !important;
        pointer-events: none !important;
        float: right !important;
        clear: both !important;
        filter: drop-shadow(0 8px 6px rgba(5,24,52,0.25)) !important;
    }

    /* dot indicators */
    .campaign-dots {
        position: static !important;
        transform: none !important;
        display: flex !important;
        justify-content: center !important;
        padding: 14px 0 0 !important;
        clear: both !important;
    }
}

@media (max-width: 400px) {
    .campaign-character {
        width: 110px !important;
    }

    .campaign-feature {
        padding: 18px 14px 18px !important;
    }
}

/* =========================================================
   HERO VISUAL WRAP — DESKTOP FIX
   The screenshot-frame uses scale(.82) + rotateX(5deg).
   At scale .82 the 530px container only renders ~435px of
   the image height — the rest is clipped by the container.
   Fix: give the wrap enough height + reduce white-floor.
   These rules are DESKTOP-ONLY (min-width: 768px).
========================================================= */

@media (min-width: 768px) {
    .visual-wrap {
        /* tall enough to show full image at scale(.82) with 3D */
        height: 580px !important;
        overflow: visible !important;
    }

    .screenshot-frame {
        /* start slightly lower so top of image isn't clipped */
        top: 10px !important;
    }

    /* Shrink white-floor so it only fades the very bottom edge,
       not the entire lower half of the image */
    .white-floor {
        height: 60px !important;
        background: linear-gradient(180deg, transparent 0%, rgba(255,255,255,0.95) 100%) !important;
    }
}

@media (min-width: 1024px) {
    .visual-wrap {
        height: 620px !important;
    }
}

@media (min-width: 1280px) {
    .visual-wrap {
        height: 660px !important;
    }
}

/* =========================================================
   SERVICES SECTION — MOBILE RESPONSIVE OVERHAUL
   Desktop: absolute-positioned cards around a centre phone.
   Mobile: normal flow grid — 2×2 cards, phone below.
========================================================= */

/* Make service-bubble links look/behave like the article cards */
a.service-bubble {
    text-decoration: none !important;
    color: inherit !important;
    cursor: pointer !important;
    display: block !important;
}

a.service-bubble:focus-visible {
    outline: 2px solid #25d366 !important;
    outline-offset: 3px !important;
}

@media (max-width: 767px) {

    /* -- Section shell ----------------------------------- */
    .linksy-services {
        padding: 40px 0 48px !important;
        min-height: 0 !important;
    }

    .services-container {
        width: calc(100% - 32px) !important;
        padding: 0 !important;
    }

    /* -- Heading ----------------------------------------- */
    .services-heading {
        margin-bottom: 28px !important;
        opacity: 1 !important;
        transform: none !important;
    }

    .services-heading h2 {
        font-size: clamp(26px, 7vw, 38px) !important;
        white-space: normal !important;
        letter-spacing: -1px !important;
        line-height: 1.15 !important;
    }

    .services-heading p {
        font-size: 13.5px !important;
    }

    /* -- Stage: switch from absolute layout to grid ------ */
    .conversation-stage {
        /* kill fixed height + 3D perspective */
        height: auto !important;
        min-height: 0 !important;
        perspective: none !important;
        transform-style: flat !important;
        transform: none !important;
        position: relative !important;

        /* 2-column grid for the 4 cards */
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 12px !important;
        max-width: 100% !important;
    }

    /* -- Hide decorative connectors on mobile ------------ */
    .connector {
        display: none !important;
    }

    /* -- Reposition all 4 cards to grid flow ------------- */
    .service-bubble {
        position: static !important;
        width: 100% !important;
        left: auto !important;
        right: auto !important;
        top: auto !important;
        bottom: auto !important;
        transform: none !important;
        animation: none !important;
        /* keep card styling */
        padding: 14px !important;
        border-radius: 16px !important;
        cursor: pointer !important;
    }

    .service-bubble:hover {
        transform: translateY(-4px) !important;
    }

    .service-bubble.active {
        transform: none !important;
        border-color: rgba(37, 211, 102, .45) !important;
    }

    .service-bubble h3 {
        font-size: 13px !important;
        line-height: 1.3 !important;
    }

    .service-bubble p {
        font-size: 11px !important;
        display: block !important;
        line-height: 1.45 !important;
        margin-top: 6px !important;
    }

    .service-icon {
        width: 32px !important;
        height: 32px !important;
        font-size: 15px !important;
        border-radius: 10px !important;
    }

    .service-arrow {
        font-size: 14px !important;
    }

    /* -- Phone mockup — move below cards, centred -------- */
    .chat-center {
        position: static !important;
        left: auto !important;
        top: auto !important;
        transform: none !important;
        /* span both columns */
        grid-column: 1 / -1 !important;
        display: flex !important;
        justify-content: center !important;
        margin-top: 20px !important;
    }

    .device {
        width: 190px !important;
        height: 315px !important;
        animation: none !important;
        /* keep subtle float */
        animation: phoneFloat 4s ease-in-out infinite !important;
    }

    /* -- CTA ---------------------------------------------- */
    .services-cta {
        opacity: 1 !important;
        transform: none !important;
        margin-top: 28px !important;
    }
}

/* -- Very small phones = 400px --------------------------- */
@media (max-width: 400px) {
    .conversation-stage {
        gap: 8px !important;
    }

    .service-bubble {
        padding: 11px !important;
    }

    .service-bubble h3 {
        font-size: 11.5px !important;
    }

    .service-bubble p {
        display: none !important;   /* too cramped — hide desc */
    }

    .device {
        width: 165px !important;
        height: 274px !important;
    }
}

/* =========================================================
   HERO — REMOVE EMPTY GAP BETWEEN IMAGE AND CAMPAIGN SECTION
   The campaign-clearance.css rules set margin-top:390px to
   clear the original 530px visual-wrap + dangling characters.
   Now the wrap height is managed separately, so we zero the
   margin on desktop and let the wrap height do the spacing.
========================================================= */

@media (min-width: 768px) {

    /* Kill the 390px clearance margin — the wrap height is
       sufficient to separate hero from campaign section */
    .campaign-section {
        margin-top: 0 !important;
    }

    /* Reduce wrap heights — 3D scale(.82) means the actual
       rendered image is ~82% of the container height.
       Target: image fills the wrap with minimal empty space. */
    .visual-wrap {
        height: 480px !important;
    }
}

@media (min-width: 1024px) {
    .visual-wrap {
        height: 520px !important;
    }
}

@media (min-width: 1280px) {
    .visual-wrap {
        height: 560px !important;
    }
}

/* =========================================================
   HERO CHARACTER IMAGES — DESKTOP ALIGNMENT FIX
   Characters are position:absolute inside .visual-wrap.
   They anchor to bottom:-18px by default. With the updated
   wrap heights we need to re-anchor them so both sit evenly
   at the bottom edge of the wrap, mirroring each other.
   DESKTOP ONLY — mobile hides them entirely.
========================================================= */

@media (min-width: 768px) {
    .character {
        /* anchor both characters to the same bottom edge */
        position: absolute !important;
        bottom: 0 !important;
        width: 200px !important;
        z-index: 5 !important;
        display: block !important;
    }

    .character-left {
        left: 2% !important;
        transform: rotate(-5deg) !important;
    }

    .character-right {
        right: 2% !important;
        transform: scaleX(-1) rotate(-5deg) !important;
    }

    /* zoomed state — keep symmetrical */
    .visual-wrap.is-zoomed .character-left {
        transform: translate(-20px, 20px) rotate(-8deg) scale(1.1) !important;
    }

    .visual-wrap.is-zoomed .character-right {
        transform: translate(20px, 20px) scaleX(-1) rotate(-8deg) scale(1.1) !important;
    }
}

@media (min-width: 1024px) {
    .character {
        width: 220px !important;
    }
}

@media (min-width: 1280px) {
    .character {
        width: 250px !important;
    }
}

/* =========================================================
   SCREENSHOT FRAME — DESKTOP SIZE FIX
   full-width-hero.css sets width:min(1100px,100vw-150px)
   which is too wide. Cap it so the image stays proportional
   inside the visual-wrap without overflowing or looking huge.
   DESKTOP ONLY — mobile already uses width:100% via its own block.
========================================================= */

@media (min-width: 768px) {
    .screenshot-frame {
        width: min(700px, 68vw) !important;
    }
}

@media (min-width: 1024px) {
    .screenshot-frame {
        width: min(780px, 66vw) !important;
    }
}

@media (min-width: 1280px) {
    .screenshot-frame {
        width: min(860px, 64vw) !important;
    }
}

/* =========================================================
   SMM FEATURE SPLIT — STICKY IMAGE FIX
   position:sticky on the graphic wrap only makes sense in
   the two-column desktop layout. On single-column (=992px)
   it causes the image to overlap content below it.
========================================================= */

/* =========================================================
   SMM FEATURE SPLIT — STICKY IMAGE FIX (FINAL)
   The image scrolls with the user (sticky) on desktop,
   stops when the section ends, flows normally on mobile.
========================================================= */

/* Desktop = 993px — sticky enabled */
@media (min-width: 993px) {
    .smm-feature-split__container {
        align-items: start !important;
    }

    .smm-feature-split__graphic-wrap {
        position: sticky !important;
        top: 110px !important;
        /* No max-height, no overflow constraints — let it breathe */
        max-height: none !important;
        overflow: visible !important;
    }
}

/* Tablet + Mobile = 992px — normal flow, no sticky */
@media (max-width: 992px) {
    .smm-feature-split__graphic-wrap {
        position: relative !important;
        top: auto !important;
        max-height: none !important;
    }

    .smm-feature-split__container {
        grid-template-columns: 1fr !important;
        gap: 32px !important;
        align-items: start !important;
    }

    .smm-feature-split__card {
        transform: none !important;
    }

    .smm-feature-split__graphic-wrap:hover .smm-feature-split__card {
        transform: none !important;
    }
}

@media (max-width: 576px) {
    .smm-feature-split__float--top,
    .smm-feature-split__float--bottom {
        display: none !important;
    }
}


/* =========================================================
   HOMEPAGE — BIG SCREEN FIX (= 768px)
   Three issues resolved here:

   1. CAMPAIGN GAP: campaign-redesign.css (line ~1539) sets
      margin-top:390px !important — overriding the earlier
      zero-out. This block sits LAST in the file and wins.

   2. CHARACTER BLEED: .character-right at right:0 with
      rotate(-5deg) + scale(1.03) during animation pushes
      pixels outside the viewport. Moved inward + added
      overflow:hidden to .visual-wrap as a safety clip.

   3. SERVICES GAP: min-height:52vh on .linksy-services
      creates excess empty space on large screens. Removed.
========================================================= */

/* -- 1. Kill the campaign clearance gap ------------------- */
@media (min-width: 768px) {
    .campaign-section {
        margin-top: 0 !important;
    }
}

/* -- 2. Stop character image bleeding outside viewport ---- */
@media (min-width: 768px) {
    /* .visual-wrap {
        overflow: hidden !important;
    } */

    .character-right {
        right: 3% !important;
    }

    .character-left {
        left: 3% !important;
    }
}

/* -- 3. Remove forced min-height on services section ------ */
.linksy-services {
    min-height: 0 !important;
}
