/* Bounded Magic UI inspired effects, adapted to the existing Skole world. */
.cmsj-website-motion .elementor-location-header {
    position: relative;
    z-index: 30;
}
@media (min-width: 768px) and (max-width: 1024px) {
    .cmsj-website-motion .elementor-location-header .elementor-element-eff5dcd {
        background: #fff;
        border-radius: 4px;
    }
    .cmsj-website-motion .elementor-location-header .elementor-element-77bb08e {
        flex: 0 0 134px;
    }
}

.cmsj-website-motion .cmsj-funding-responsive { display: none; }
@media (max-width: 767px) {
    .cmsj-website-motion .cmsj-funding-original { display: none; }
    .cmsj-website-motion .cmsj-funding-responsive { display: block; text-align: left; }
    .cmsj-website-motion .cmsj-funding-copy {
        display: block;
        margin: 0 auto 24px;
        max-width: 560px;
        color: #0a303a;
        font: 600 15px/1.5 CMSJCatamaran, sans-serif;
    }
    .cmsj-website-motion .cmsj-funding-logos {
        display: flex;
        flex-wrap: wrap;
        justify-content: flex-start;
        align-items: center;
        gap: 24px 18px;
        max-width: 560px;
        margin: auto;
    }
    .cmsj-website-motion .cmsj-funding-logo { display: block; flex: 0 1 auto; max-width: 100%; height: auto; }
    .cmsj-website-motion .cmsj-funding-logo-0 { width: 280px; }
    .cmsj-website-motion .cmsj-funding-logo-1 { width: 330px; }
    .cmsj-website-motion .cmsj-funding-logo-2 { width: 118px; }
    .cmsj-website-motion .cmsj-funding-logo-3 { width: 118px; }
    .cmsj-website-motion .cmsj-funding-logo-4 { width: 148px; }
}

.cmsj-website-motion .cmsj-shine-form {
    position: relative;
    isolation: isolate;
    border-radius: 24px;
    padding: clamp(20px, 3vw, 38px);
    background: #fff;
    box-shadow: 0 0 0 1px #d7e2df;
}
.cmsj-website-motion .cmsj-shine-edge {
    position: absolute;
    inset: 0;
    z-index: -1;
    border-radius: inherit;
    pointer-events: none;
}
@supports (mask-composite: exclude) {
    .cmsj-website-motion .cmsj-shine-edge {
        padding: 2px;
        background: radial-gradient(ellipse at 30% 40%, #f45124 5%, #ffbb82 20%, transparent 48%);
        background-size: 300% 300%;
        background-position: 0% 50%;
        mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
        mask-composite: exclude;
    }
    .cmsj-website-motion .cmsj-shine-form:is(:hover, :focus-within) .cmsj-shine-edge,
    .cmsj-website-motion .cmsj-shine-form.cmsj-shine-arrive .cmsj-shine-edge {
        animation: cmsj-shine-border 2.8s ease-in-out 1;
    }
}
@keyframes cmsj-shine-border {
    0%, 100% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
}

.cmsj-website-motion .cmsj-motion-button { position: relative; isolation: isolate; }
.cmsj-website-motion .cmsj-button-effects {
    position: absolute;
    inset: 0;
    border-radius: inherit;
    overflow: hidden;
    pointer-events: none;
}
.cmsj-website-motion .cmsj-shimmer-edge {
    position: absolute;
    inset: 0;
    border-radius: inherit;
    border: 1px solid transparent;
    pointer-events: none;
}
@supports (mask-composite: exclude) {
    .cmsj-website-motion .cmsj-shimmer-edge {
        padding: 2px;
        border: 0;
        opacity: 0;
        mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
        mask-composite: exclude;
    }
    .cmsj-website-motion .cmsj-shimmer-edge::before {
        content: '';
        position: absolute;
        width: 150%;
        aspect-ratio: 1;
        left: 50%;
        top: 50%;
        background: conic-gradient(from 0deg, transparent 0 280deg, #ffdfbe 310deg, #fff 330deg, transparent 360deg);
        transform: translate(-50%, -50%) rotate(0deg);
    }
    .cmsj-website-motion .cmsj-motion-button:is(:hover, :focus-visible) .cmsj-shimmer-edge { opacity: 1; }
    .cmsj-website-motion .cmsj-motion-button:is(:hover, :focus-visible) .cmsj-shimmer-edge::before {
        animation: cmsj-button-shimmer 1.8s ease-in-out 1 both;
    }
}
@keyframes cmsj-button-shimmer {
    0% { transform: translate(-50%, -50%) rotate(0deg); opacity: 0; }
    15%, 75% { opacity: 1; }
    100% { transform: translate(-50%, -50%) rotate(360deg); opacity: 0; }
}
.cmsj-website-motion .cmsj-button-ripple {
    position: absolute;
    border-radius: 50%;
    background: rgb(10 48 58 / 12%);
    transform: translate(-50%, -50%) scale(0);
    animation: cmsj-button-ripple 550ms ease-out both;
}
@keyframes cmsj-button-ripple {
    to { transform: translate(-50%, -50%) scale(1); opacity: 0; }
}

.cmsj-website-motion .cmsj-kinetic-sr {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    clip-path: inset(50%);
    overflow: hidden;
    white-space: nowrap;
}
.cmsj-website-motion .cmsj-kinetic-word { display: inline-block; white-space: nowrap; }
.cmsj-website-motion .cmsj-kinetic-letter {
    display: inline-block;
    transform-origin: 50% 75%;
    transition: transform 220ms ease-out, -webkit-text-stroke-width 220ms ease-out;
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
    .cmsj-website-motion .cmsj-kinetic-letter {
        transform: translateY(calc(var(--cmsj-kinetic, 0) * -2px)) scale(calc(1 + var(--cmsj-kinetic, 0) * .06));
        -webkit-text-stroke-width: calc(var(--cmsj-kinetic, 0) * .3px);
    }
}

.cmsj-website-motion .cmsj-velocity-band {
    width: 100%;
    overflow: hidden;
    padding: 28px 0;
    background: #d5e6eb;
    color: #0a303a;
    contain: paint;
}
.cmsj-website-motion .cmsj-velocity-track { display: flex; width: max-content; }
.cmsj-website-motion .cmsj-velocity-copy {
    flex: 0 0 auto;
    padding: 0 28px;
    white-space: nowrap;
    font: 400 clamp(26px, 4.5vw, 60px)/1.2 CMSJSensei, sans-serif;
    letter-spacing: .01em;
}
.cmsj-website-motion .cmsj-velocity-dot {
    color: #a4351d;
    padding: 0 24px;
    font-family: CMSJCatamaran, sans-serif;
}

@media (prefers-reduced-motion: reduce) {
    .cmsj-website-motion :is(.cmsj-shine-edge, .cmsj-shimmer-edge::before, .cmsj-button-ripple) { animation: none !important; }
    .cmsj-website-motion :is(.cmsj-shimmer-edge, .cmsj-button-ripple) { display: none; }
    .cmsj-website-motion .cmsj-kinetic-letter { transform: none; transition: none; -webkit-text-stroke-width: 0; }
    .cmsj-website-motion .cmsj-velocity-track { width: 100%; justify-content: center; transform: none !important; }
    .cmsj-website-motion .cmsj-velocity-copy { font-size: clamp(16px, 3.8vw, 42px); padding: 0 12px; }
    .cmsj-website-motion .cmsj-velocity-copy ~ .cmsj-velocity-copy { display: none; }
    .cmsj-website-motion .cmsj-velocity-dot { padding: 0 6px; }
}
