/* ==========================================================================
   Home Page — GTD Hospitality
   ========================================================================== */

/* ── Hero orb pulse ── */
@keyframes orbFloat {
    0%, 100% { transform: translateY(0) scale(1); }
    50%       { transform: translateY(-30px) scale(1.06); }
}

/* ── Hero entrance animations ── */
@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(32px); }
    to   { opacity: 1; transform: translateY(0); }
}
@keyframes fadeInDown {
    from { opacity: 0; transform: translateY(-20px); }
    to   { opacity: 1; transform: translateY(0); }
}
@keyframes popIn {
    0%   { opacity: 0; transform: scale(0.85); }
    70%  { transform: scale(1.04); }
    100% { opacity: 1; transform: scale(1); }
}

.hero-badge { animation: popIn     0.6s ease-out both; }
.hero-title { animation: fadeInUp  0.9s ease-out 0.2s  both; }
.hero-sub   { animation: fadeInUp  0.9s ease-out 0.38s both; }
.hero-btn   { animation: fadeInUp  0.9s ease-out 0.52s both; }
.hero-stats { animation: fadeInUp  0.9s ease-out 0.66s both; }

.hero-primary-btn {
    transition: transform 0.2s, box-shadow 0.2s;
}
.hero-primary-btn:hover {
    transform: translateY(-3px) scale(1.03);
    box-shadow: 0 12px 32px rgba(123,82,160,0.55);
}
.hero-primary-btn:active { transform: scale(0.97); }

/* ── Ticker ── */
@keyframes tickerScroll {
    from { transform: translateX(0); }
    to   { transform: translateX(-33.333%); }
}
.ticker-track {
    animation: tickerScroll 30s linear infinite;
    will-change: transform;
}
.ticker-track:hover { animation-play-state: paused; }

/* ── Scroll reveal ── */
.reveal {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 0.75s ease, transform 0.75s ease;
}
.reveal.visible { opacity: 1; transform: translateY(0); }

.reveal-left {
    opacity: 0;
    transform: translateX(-32px);
    transition: opacity 0.75s ease, transform 0.75s ease;
}
.reveal-left.visible { opacity: 1; transform: translateX(0); }

.reveal-right {
    opacity: 0;
    transform: translateX(32px);
    transition: opacity 0.75s ease, transform 0.75s ease;
}
.reveal-right.visible { opacity: 1; transform: translateX(0); }

/* ── Pillar card hover fill ── */
.pillar-card {
    position: relative;
    overflow: hidden;
    transition: transform 0.35s cubic-bezier(.22,.68,0,1.2), box-shadow 0.35s ease;
}
.pillar-card::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, #3A1F5E, #7B52A0);
    opacity: 0;
    transition: opacity 0.4s ease;
    z-index: 0;
    border-radius: inherit;
}
.pillar-card:hover { transform: translateY(-10px) scale(1.01); box-shadow: 0 28px 56px rgba(58,31,94,0.22); }
.pillar-card:hover::before { opacity: 1; }
.pillar-card > * { position: relative; z-index: 1; }
.pillar-card:hover .pillar-num  { background: rgba(255,255,255,0.18) !important; color: white !important; }
.pillar-card:hover h3           { color: white !important; }
.pillar-card:hover p            { color: rgba(255,255,255,0.78) !important; }
.pillar-card:hover .pillar-link { color: #E0C4EE !important; }
.pillar-card:hover .pillar-arrow { transform: translateX(6px); }

/* ── Achievement item ── */
.achieve-item {
    transition: all 0.4s ease;
    border-left: 4px solid transparent;
}
.achieve-item:hover {
    background: white;
    box-shadow: 0 8px 32px rgba(123,82,160,0.12);
    transform: translateY(-3px);
    border-left-color: #7B52A0;
}

/* ── Outcome card ── */
.outcome-card {
    transition: transform 0.3s cubic-bezier(.22,.68,0,1.2), box-shadow 0.3s ease, border-color 0.3s ease, background 0.3s ease;
    cursor: default;
}
.outcome-card:hover {
    transform: translateY(-8px) scale(1.03) !important;
    box-shadow: 0 20px 48px rgba(123,82,160,0.18);
    border-color: rgba(123,82,160,0.4) !important;
    background: white !important;
}
.outcome-card:hover .outcome-icon {
    transform: rotate(12deg) scale(1.15);
    box-shadow: 0 8px 20px rgba(123,82,160,0.35);
}
.outcome-icon {
    transition: transform 0.3s cubic-bezier(.22,.68,0,1.2), box-shadow 0.3s ease;
}

/* ── Testimonial card ── */
.testi-card {
    transition: transform 0.35s cubic-bezier(.22,.68,0,1.2), box-shadow 0.35s ease, border-color 0.35s ease;
    border-left: 3px solid transparent;
}
.testi-card:hover {
    transform: translateY(-10px) !important;
    box-shadow: 0 28px 56px rgba(123,82,160,0.18);
    border-color: rgba(123,82,160,0.25) !important;
    border-left-color: #7B52A0 !important;
}
.testi-card .quote-mark {
    transition: color 0.3s ease, opacity 0.3s ease;
}
.testi-card:hover .quote-mark {
    color: #7B52A0;
    opacity: 0.7;
}

/* ── Home CTA ── */
.home-cta {
    background: linear-gradient(135deg, #1E0E38 0%, #3A1F5E 55%, #5A3578 100%);
}

/* ── Parallax prevent overflow ── */
#hero-bg {
    transition: transform 0.1s linear;
    will-change: transform;
}
