/* ============================================================
   动画样式表 - 告白气球婚礼庆典
   ============================================================ */

/* ---------- AOS 简化版（自定义滚动进场动画） ---------- */
[data-aos] {
    opacity: 0;
    transition-property: opacity, transform;
    transition-duration: 0.9s;
    transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
    transition-delay: 0s;
    will-change: opacity, transform;
}

[data-aos="fade-up"] { transform: translateY(40px); }
[data-aos="fade-down"] { transform: translateY(-40px); }
[data-aos="fade-left"] { transform: translateX(50px); }
[data-aos="fade-right"] { transform: translateX(-50px); }
[data-aos="zoom-in"] { transform: scale(0.92); }
[data-aos="flip-up"] { transform: perspective(800px) rotateX(20deg); transform-origin: top; }

[data-aos].aos-animate {
    opacity: 1;
    transform: translate(0, 0) scale(1) rotate(0);
}

/* ---------- 页面进入过渡 ---------- */
.main-content {
    animation: pageFadeIn 0.7s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes pageFadeIn {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
}

/* ---------- 文字下划线动效 ---------- */
.section-title {
    position: relative;
}

/* ---------- 按钮闪光动效 ---------- */
.btn-gold::after {
    content: "";
    position: absolute;
    top: 0; left: -100%;
    width: 100%; height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
    transition: left 0.6s ease;
}

.btn-gold:hover::after { left: 100%; }

/* ---------- 卡片悬浮发光 ---------- */
.service-card,
.value-card,
.contact-card,
.review-card {
    position: relative;
}

.service-card::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: var(--radius-lg);
    background: radial-gradient(circle at 50% 0%, rgba(201, 168, 106, 0.08), transparent 70%);
    opacity: 0;
    transition: opacity 0.55s ease;
    pointer-events: none;
}

.service-card:hover::after { opacity: 1; }

/* ---------- 滚动数字 ---------- */
.stat-num {
    transition: all 0.3s ease;
}

/* ---------- 渐入粒子（装饰） ---------- */
.hero-eyebrow,
.hero-title,
.hero-subtitle,
.hero-actions {
    animation: heroFadeUp 1s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.hero-eyebrow { animation-delay: 0.2s; }
.hero-title { animation-delay: 0.4s; }
.hero-subtitle { animation-delay: 0.6s; }
.hero-actions { animation-delay: 0.8s; }

@keyframes heroFadeUp {
    from { opacity: 0; transform: translateY(30px); }
    to { opacity: 1; transform: translateY(0); }
}

/* 减弱动画 - 无障碍 */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
    [data-aos] { opacity: 1; transform: none; }
}
