/*
 * Visual enhancement khusus STEMA Travel.
 * File CSS dan JavaScript Travel yang sudah final tetap tidak diubah.
 */

.travel-public-hero__title-accent {
    background-size: 180% 100%;
    animation: travelAccentShimmer 7s ease-in-out infinite alternate;
}

.travel-public-heading h2,
.travel-public-about h2,
.travel-public-faq h2 {
    color: transparent;
    background: linear-gradient(112deg, #101940 0%, #176cf0 52%, #763bea 100%);
    background-size: 165% 100%;
    background-clip: text;
    -webkit-background-clip: text;
    animation: travelAccentShimmer 9s ease-in-out infinite alternate;
}

.travel-public-showcase .travel-public-heading h2,
.travel-public-contact h2 {
    color: transparent;
    background: linear-gradient(100deg, #ffffff 0%, #9edcff 50%, #dbc3ff 100%);
    background-size: 170% 100%;
    background-clip: text;
    -webkit-background-clip: text;
    animation: travelAccentShimmer 9s ease-in-out infinite alternate;
}

.travel-public-hero__glow--one {
    animation: travelGlowOne 10s ease-in-out infinite alternate;
}

.travel-public-hero__glow--two {
    animation: travelGlowTwo 12s ease-in-out infinite alternate;
}

.travel-system-preview__chart span {
    transform-origin: bottom;
    animation: travelChartPulse 2.5s ease-in-out infinite;
}

.travel-system-preview__chart span:nth-child(2n) {
    animation-delay: -0.65s;
}

.travel-system-preview__chart span:nth-child(3n) {
    animation-delay: -1.3s;
}

.travel-public-icon {
    transition:
        transform 300ms cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 300ms ease,
        filter 300ms ease;
}

.travel-solution-card:hover .travel-public-icon,
.travel-feature-card:hover .travel-public-icon,
.travel-process-item:hover .travel-public-icon {
    transform: scale(1.08) rotate(-3deg);
    filter: saturate(1.12);
    box-shadow: 0 15px 34px rgba(48, 99, 237, 0.2);
}

.travel-public-contact__card {
    background-size: auto, auto, 135% 135%;
    animation: travelContactGradient 11s ease-in-out infinite alternate;
}

@keyframes travelAccentShimmer {
    from {
        background-position: 0% 50%;
    }

    to {
        background-position: 100% 50%;
    }
}

@keyframes travelGlowOne {
    from {
        opacity: 0.55;
        transform: translate3d(-25px, -12px, 0) scale(0.94);
    }

    to {
        opacity: 0.92;
        transform: translate3d(38px, 25px, 0) scale(1.13);
    }
}

@keyframes travelGlowTwo {
    from {
        opacity: 0.5;
        transform: translate3d(24px, 16px, 0) scale(1);
    }

    to {
        opacity: 0.88;
        transform: translate3d(-36px, -22px, 0) scale(1.15);
    }
}

@keyframes travelChartPulse {
    0%,
    100% {
        filter: brightness(0.94);
        transform: scaleY(0.92);
    }

    50% {
        filter: brightness(1.18);
        transform: scaleY(1);
    }
}

@keyframes travelContactGradient {
    from {
        background-position: 0% 0%, 100% 100%, 0% 50%;
    }

    to {
        background-position: 10% 8%, 92% 90%, 100% 50%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .travel-public-hero__title-accent,
    .travel-public-heading h2,
    .travel-public-about h2,
    .travel-public-faq h2,
    .travel-public-showcase .travel-public-heading h2,
    .travel-public-contact h2,
    .travel-public-hero__glow,
    .travel-system-preview__chart span,
    .travel-public-contact__card {
        animation: none !important;
    }
}
