.applications-block {
    --applications-background: #fff;
    --applications-gradient: #32d4d2;
    overflow: hidden;
    background-color: var(--applications-background);
    background-image: radial-gradient(ellipse 70% 60% at 50% 100%, var(--applications-gradient) 0%, color-mix(in srgb, var(--applications-gradient) 42%, transparent) 48%, transparent 100%);
}
.applications-block.applications-block--pt-none { padding-top: 0; }
.applications-block.applications-block--pt-small { padding-top: 15px; }
.applications-block.applications-block--pt-medium { padding-top: 30px; }
.applications-block.applications-block--pt-large { padding-top: 50px; }
.applications-block.applications-block--pt-x-large { padding-top: 75px; }
.applications-block.applications-block--pt-xx-large { padding-top: 130px; }
.applications-block.applications-block--pb-none { padding-bottom: 0; }
.applications-block.applications-block--pb-small { padding-bottom: 15px; }
.applications-block.applications-block--pb-medium { padding-bottom: 30px; }
.applications-block.applications-block--pb-large { padding-bottom: 50px; }
.applications-block.applications-block--pb-x-large { padding-bottom: 75px; }
.applications-block.applications-block--pb-xx-large { padding-bottom: 130px; }
.applications-block__heading {
    margin: 0;
    color: #2b2e36;
    font-size: 34px;
    font-weight: 700;
    line-height: 1.08;
    letter-spacing: -.025em;
}
.applications-block__content {
    max-width: 980px;
    margin: 22px auto 0;
    color: #2b2e36;
    font-size: 16px;
    line-height: 1.45;
}
.applications-block__content > :last-child { margin-bottom: 0; }
.applications-block__icons {
    position: relative;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(54px, 68px));
    gap: 24px;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 1174px;
    margin: 42px auto 0;
    padding: 0;
}
.applications-block__icon-card {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    background: transparent;
    box-shadow: none;
}
.applications-block__icon {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
}
/* Keep the CMS images editable; only their layout follows the supplied reference.
   Other icon counts retain the flexible grid. */
@media (min-width: 768px) {
    .applications-block__icons:has(> :nth-child(21):last-child) {
        display: block;
        aspect-ratio: 1174 / 208;
    }
    .applications-block__icons:has(> :nth-child(21):last-child) > .applications-block__icon-card {
        position: absolute;
        left: var(--icon-x);
        top: var(--icon-y);
        width: var(--icon-width);
        height: var(--icon-height);
    }
    .applications-block__icon-card:nth-child(1) { --icon-x: 59.540034%; --icon-y: 25.000000%; --icon-width: 5.281090%; --icon-height: 30.769231%; }
    .applications-block__icon-card:nth-child(2) { --icon-x: 65.502555%; --icon-y: 0.000000%; --icon-width: 5.195911%; --icon-height: 29.326923%; }
    .applications-block__icon-card:nth-child(3) { --icon-x: 69.080068%; --icon-y: 40.384615%; --icon-width: 5.195911%; --icon-height: 29.807692%; }
    .applications-block__icon-card:nth-child(4) { --icon-x: 75.042589%; --icon-y: 63.942308%; --icon-width: 5.195911%; --icon-height: 29.807692%; }
    .applications-block__icon-card:nth-child(5) { --icon-x: 57.155026%; --icon-y: 71.634615%; --icon-width: 5.706985%; --icon-height: 27.884615%; }
    .applications-block__icon-card:nth-child(6) { --icon-x: 7.580920%; --icon-y: 2.884615%; --icon-width: 5.195911%; --icon-height: 28.365385%; }
    .applications-block__icon-card:nth-child(7) { --icon-x: 45.229983%; --icon-y: 63.461538%; --icon-width: 5.195911%; --icon-height: 28.365385%; }
    .applications-block__icon-card:nth-child(8) { --icon-x: 32.538330%; --icon-y: 65.384615%; --icon-width: 5.195911%; --icon-height: 28.365385%; }
    .applications-block__icon-card:nth-child(9) { --icon-x: 94.804089%; --icon-y: 35.576923%; --icon-width: 5.195911%; --icon-height: 28.365385%; }
    .applications-block__icon-card:nth-child(10) { --icon-x: 6.814310%; --icon-y: 59.134615%; --icon-width: 6.388416%; --icon-height: 34.615385%; }
    .applications-block__icon-card:nth-child(11) { --icon-x: 0.000000%; --icon-y: 27.884615%; --icon-width: 6.047700%; --icon-height: 30.288462%; }
    .applications-block__icon-card:nth-child(12) { --icon-x: 89.437819%; --icon-y: 10.576923%; --icon-width: 4.344123%; --icon-height: 28.846154%; }
    .applications-block__icon-card:nth-child(13) { --icon-x: 84.838160%; --icon-y: 41.346154%; --icon-width: 5.110733%; --icon-height: 29.807692%; }
    .applications-block__icon-card:nth-child(14) { --icon-x: 77.172061%; --icon-y: 25.000000%; --icon-width: 5.877342%; --icon-height: 33.173077%; }
    .applications-block__icon-card:nth-child(15) { --icon-x: 52.214651%; --icon-y: 29.807692%; --icon-width: 5.877342%; --icon-height: 34.615385%; }
    .applications-block__icon-card:nth-child(16) { --icon-x: 44.293015%; --icon-y: 7.692308%; --icon-width: 5.877342%; --icon-height: 32.692308%; }
    .applications-block__icon-card:nth-child(17) { --icon-x: 28.109029%; --icon-y: 16.346154%; --icon-width: 5.706985%; --icon-height: 31.250000%; }
    .applications-block__icon-card:nth-child(18) { --icon-x: 21.890971%; --icon-y: 58.173077%; --icon-width: 5.962521%; --icon-height: 31.250000%; }
    .applications-block__icon-card:nth-child(19) { --icon-x: 13.713799%; --icon-y: 24.038462%; --icon-width: 6.729131%; --icon-height: 37.980769%; }
    .applications-block__icon-card:nth-child(20) { --icon-x: 36.712095%; --icon-y: 28.365385%; --icon-width: 5.706985%; --icon-height: 31.730769%; }
    .applications-block__icon-card:nth-child(21) { --icon-x: 21.550256%; --icon-y: 0.961538%; --icon-width: 5.706985%; --icon-height: 28.365385%; }
}
.applications-block__buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    align-items: center;
    justify-content: center;
    margin-top: 40px;
    padding-top: 0;
}
.applications-block__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 235px;
    min-height: 60px;
    padding: 15px 30px;
    border-radius: 18px;
    font-weight: 700;
    text-decoration: none;
    transition: transform 180ms ease, box-shadow 180ms ease;
}
.applications-block__button--dark { color: #fff; background: #2b2e36; }
.applications-block__button--aqua { color: #fff; background: #008b89; }
.applications-block__button:hover,
.applications-block__button:focus-visible {
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(43, 46, 54, .16);
}
@media (max-width: 767.98px) {
    .applications-block__icons {
        grid-template-columns: repeat(7, minmax(0, 58px));
        gap: 26px clamp(5px, 1.8vw, 12px);
        align-items: end;
        margin-top: 36px;
        padding-top: 12px;
    }
    /* Three staggered rows of CMS icons, with room for the floating motion. */
    .applications-block__icon-card { position: relative; min-width: 0; }
    .applications-block__icon-card:nth-child(7n+2),
    .applications-block__icon-card:nth-child(7n+6) { top: -12px; }
    .applications-block__icon-card:nth-child(7n+4) { top: -6px; }
    .applications-block__icon-card:nth-child(3n) { width: 88%; justify-self: center; }
    .applications-block__buttons { gap: 16px; }
    .applications-block__button { width: 100%; min-width: 0; }
}
@media (prefers-reduced-motion: reduce) {
    .applications-block__button { transition: none; }
}

.applications-block--animated .applications-block__icon-card { animation: applications-float 5s ease-in-out infinite; }
.applications-block--animated .applications-block__icon-card--2 { animation-delay: -1s; animation-duration: 5.8s; }
.applications-block--animated .applications-block__icon-card--3 { animation-delay: -2.2s; animation-duration: 6.4s; }
.applications-block--animated .applications-block__icon-card--4 { animation-delay: -3.1s; animation-duration: 5.4s; }
.applications-block--animated .applications-block__icon-card--5 { animation-delay: -4s; animation-duration: 6.1s; }

@keyframes applications-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-8px); }
}
@media (prefers-reduced-motion: reduce) {
    .applications-block--animated .applications-block__icon-card { animation: none; }
}
