.asail-store-vm {
    --p-dark:  color-mix(in srgb, var(--primary-color) 78%, #000);
    --p-deep:  color-mix(in srgb, var(--primary-color) 60%, #000);
    --p-light: color-mix(in srgb, var(--primary-color) 88%, #fff);

    background: #fbfbf9;
    direction: var(--page-direction);
    font-family: inherit;
    padding-block: clamp(3rem, 6vw, 5rem);
    position: relative;
    isolation: isolate;
}

.vm-soft-shape {
    position: absolute;
    border-radius: 50%;
    filter: blur(80px);
    pointer-events: none;
    z-index: 0;
    opacity: 0.35;
}
.vm-soft-shape-1 {
    top: -120px;
    inset-inline-end: -100px;
    width: 360px;
    height: 360px;
    background: var(--primary-soft);
    animation: vm-soft-drift 20s ease-in-out infinite;
}
.vm-soft-shape-2 {
    bottom: -120px;
    inset-inline-start: -80px;
    width: 320px;
    height: 320px;
    background: var(--primary-soft);
    animation: vm-soft-drift 24s ease-in-out infinite reverse;
}
@keyframes vm-soft-drift {
    0%, 100% { transform: translate(0, 0); }
    50%      { transform: translate(-20px, 25px); }
}

.vm-header { position: relative; z-index: 1; }

.store-vm-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 24px;
    max-width: 1100px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

.store-vm-card {
    position: relative;
    border-radius: 24px;
    padding: clamp(28px, 5vw, 44px) clamp(20px, 4vw, 36px);
    overflow: hidden;
    z-index: 1;
    color: #ffffff;
    background:
        linear-gradient(135deg,
            var(--primary-color) 0%,
            var(--p-dark) 60%,
            var(--p-deep) 100%);
    box-shadow:
        0 18px 40px -12px var(--primary-glow),
        0 8px 18px -8px rgba(0, 0, 0, 0.12),
        inset 0 1px 0 rgba(255, 255, 255, 0.12);
    transition:
        transform 0.5s cubic-bezier(0.2, 0.7, 0.3, 1.05),
        box-shadow 0.5s ease;
}

.mission-card {
    background:
        linear-gradient(135deg,
            var(--p-dark) 0%,
            var(--primary-color) 55%,
            var(--p-light) 130%);
}

.store-vm-card::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(120% 80% at 50% 0%,
            rgba(255, 255, 255, 0.18) 0%,
            rgba(255, 255, 255, 0) 50%);
    pointer-events: none;
    z-index: 0;
}

.vm-shine {
    position: absolute;
    top: 0;
    inset-inline-start: -60%;
    width: 60%;
    height: 100%;
    background: linear-gradient(115deg,
        transparent 0%,
        rgba(255, 255, 255, 0.12) 45%,
        rgba(255, 255, 255, 0.22) 50%,
        rgba(255, 255, 255, 0.12) 55%,
        transparent 100%);
    transform: skewX(-18deg);
    transition: inset-inline-start 0.9s ease;
    pointer-events: none;
    z-index: 1;
}
.store-vm-card:hover .vm-shine {
    inset-inline-start: 110%;
}

.vm-orb {
    position: absolute;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.08);
    filter: blur(30px);
    pointer-events: none;
    z-index: 0;
}
.vm-orb-1 {
    width: 220px;
    height: 220px;
    top: -60px;
    inset-inline-end: -60px;
    animation: vm-orb-float 12s ease-in-out infinite;
}
.vm-orb-2 {
    width: 160px;
    height: 160px;
    bottom: -50px;
    inset-inline-start: -40px;
    animation: vm-orb-float 16s ease-in-out infinite reverse;
}
@keyframes vm-orb-float {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50%      { transform: translate(15px, -15px) scale(1.08); }
}

.store-card-body {
    position: relative;
    z-index: 2;
    width: 100%;
}

.store-vm-card:hover {
    transform: translateY(-8px);
    box-shadow:
        0 24px 48px -12px var(--primary-glow),
        0 12px 24px -8px rgba(0, 0, 0, 0.18),
        inset 0 1px 0 rgba(255, 255, 255, 0.18);
}

.store-icon-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
}

.icon-circle {
    position: relative;
    width: 70px;
    height: 70px;
    background: rgba(255, 255, 255, 0.14);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border-radius: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.75rem;
    color: #ffffff;
    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.22),
        0 8px 20px rgba(0, 0, 0, 0.12);
    transition:
        transform 0.5s cubic-bezier(0.2, 0.7, 0.3, 1.05),
        background 0.5s ease,
        box-shadow 0.5s ease;
    animation: vm-icon-breathe 5s ease-in-out infinite;
}
.mission-card .icon-circle { animation-delay: 2s; }

@keyframes vm-icon-breathe {
    0%, 100% { transform: translateY(0) scale(1); }
    50%      { transform: translateY(-4px) scale(1.04); }
}

.store-vm-card:hover .icon-circle {
    background: rgba(255, 255, 255, 0.22);
    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.35),
        0 14px 28px rgba(0, 0, 0, 0.2);
    transform: translateY(-2px) scale(1.05);
    animation-play-state: paused;
}

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

.store-card-title {
    font-weight: 800;
    font-size: clamp(1.25rem, 1rem + 0.6vw, 1.5rem);
    color: #ffffff;
    margin-bottom: 14px;
    letter-spacing: -0.3px;
    line-height: 1.3;
    position: relative;
    display: inline-block;
    padding-bottom: 10px;
    max-width: 100%;
    overflow-wrap: break-word;
    word-break: break-word;
}
.store-card-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 36px;
    height: 2px;
    background: rgba(255, 255, 255, 0.55);
    border-radius: 2px;
    transition: width 0.5s ease;
}
.store-vm-card:hover .store-card-title::after {
    width: 60px;
}

.store-card-text {
    color: rgba(255, 255, 255, 0.92);
    font-size: clamp(0.9rem, 0.85rem + 0.2vw, 1rem);
    line-height: 1.8;
    font-weight: 400;
    margin: 0;
    text-wrap: pretty;
    overflow-wrap: anywhere;
}

@media (max-width: 768px) {
    .icon-circle { width: 62px; height: 62px; font-size: 1.5rem; }
    .vm-soft-shape-1, .vm-soft-shape-2 { width: 220px; height: 220px; }
}

@media (prefers-reduced-motion: reduce) {
    .store-vm-card,
    .icon-circle,
    .vm-soft-shape,
    .vm-orb,
    .vm-shine {
        animation: none !important;
        transition: none !important;
    }
}
