/* ── Mega menu panels ── */
.mega-panel {
    position: fixed;
    left: 0;
    right: 0;
    top: 4rem;
    z-index: 99;
    background: #fff;
    border-bottom: 1px solid rgba(124, 58, 237, 0.12);
    box-shadow: 0 18px 50px rgba(124, 58, 237, 0.08);
    display: none;
    opacity: 0;
    pointer-events: none;
    transform: translateY(-6px);
    transition: opacity 0.18s ease, transform 0.18s ease;
}
.mega-panel.mega-open {
    display: block;
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}
.mega-chevron {
    transition: transform 0.2s ease;
}
.mega-trigger.mega-active .mega-chevron {
    transform: rotate(180deg);
}
.mega-trigger.mega-active {
    background-color: #F3F0FF;
    color: #7C3AED;
}

/* ── Demo mode ── */
.show-on-demo { display: none; }
.hide-on-demo { display: block; }
body.demo-mode .show-on-demo { display: block; }
body.demo-mode .hide-on-demo { display: none !important; }

/* ── Context menu ── */
.custom-context-menu { z-index: 9999; }
.custom-context-menu li.text-danger:hover {
    background-color: #fef2f2;
    color: #ef4444;
}

/* ── Accessibility ── */
:focus-visible {
    outline: 2px solid #7C3AED;
    outline-offset: 2px;
}

html { scroll-behavior: smooth; }
html { font-family: 'Inter', 'Inter-fallback', sans-serif; }
.bg-hero { background: linear-gradient(135deg, #3B0764 0%, #7C3AED 100%); }
.text-balance { text-wrap: balance; }

h1 {
    font-size: 3rem;
    line-height: 0.85;
    letter-spacing: -0.05em;
    font-weight: 800;
}
@media (min-width: 768px) {
    h1 { font-size: 6rem; }
}

.virtual-item {
    content-visibility: auto;
    contain-intrinsic-size: 144px;
}

/* ── Toast notifications ── */
.animate-toast-in  { animation: toast-in  0.3s ease-out; }
.animate-toast-out { animation: toast-out 0.2s ease-in forwards; }

@keyframes toast-in {
    from { opacity: 0; transform: translateX(100%); }
    to   { opacity: 1; transform: translateX(0); }
}
@keyframes toast-out {
    from { opacity: 1; transform: translateX(0); }
    to   { opacity: 0; transform: translateX(100%); }
}
@keyframes toast-progress {
    from { width: 100%; }
    to   { width: 0%; }
}

/* ── AOS scroll animations ── */
[data-aos="fade-up"]    { opacity: 0; transform: translateY(24px); }
[data-aos="fade-in"]    { opacity: 0; }
[data-aos="fade-left"]  { opacity: 0; transform: translateX(-24px); }
[data-aos="fade-right"] { opacity: 0; transform: translateX(24px); }

[data-aos].aos-animated {
    opacity: 1 !important;
    transform: none !important;
    transition: opacity 0.55s cubic-bezier(0.22, 1, 0.36, 1),
                transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}

html:not(.js) [data-aos] { opacity: 1 !important; transform: none !important; }

@media (prefers-reduced-motion: reduce) {
    [data-aos], [data-aos].aos-animated {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}

/* ── Landing page carousel ── */
#lp-carousel-track::-webkit-scrollbar { display: none; }
.lp-carousel-phone img {
    border: none;
    outline: none;
    display: block;
    background: transparent;
}
.lp-carousel-phone {
    position: relative;
    background: transparent;
    transform: scale(0.87);
    opacity: 0.45;
    transition: transform 0.42s cubic-bezier(.22,1,.36,1),
                opacity 0.42s ease,
                filter 0.42s ease;
    filter: drop-shadow(0 20px 50px rgba(0,0,0,0.5));
}
.lp-carousel-slide.is-active .lp-carousel-phone {
    transform: scale(1);
    opacity: 1;
    filter: drop-shadow(0 30px 70px rgba(0,0,0,0.6))
            drop-shadow(0 0 50px rgba(124,58,237,0.22));
}
.lp-carousel-slide.is-active .lp-carousel-label {
    color: rgba(255,255,255,0.85) !important;
}
.lp-carousel-dot.is-active {
    background: white !important;
    width: 22px !important;
}
@media (max-width: 767px) {
    #lp-carousel-track {
        padding-left: calc(50vw - 110px) !important;
        padding-right: calc(50vw - 110px) !important;
    }
    .lp-carousel-slide { width: 200px !important; }
    .lp-carousel-phone img { max-height: 430px !important; }
}

/* ── Pricing page carousel ── */
#pr-carousel-track::-webkit-scrollbar { display: none; }
.pr-carousel-phone img {
    border: none;
    outline: none;
    display: block;
    background: transparent;
}
.pr-carousel-phone {
    position: relative;
    background: transparent;
    transform: scale(0.87);
    opacity: 0.45;
    transition: transform 0.42s cubic-bezier(.22,1,.36,1),
                opacity 0.42s ease,
                filter 0.42s ease;
    filter: drop-shadow(0 20px 50px rgba(0,0,0,0.5));
}
.pr-carousel-slide.is-active .pr-carousel-phone {
    transform: scale(1);
    opacity: 1;
    filter: drop-shadow(0 30px 70px rgba(0,0,0,0.6))
            drop-shadow(0 0 50px rgba(124,58,237,0.22));
}
.pr-carousel-slide.is-active .pr-carousel-label {
    color: rgba(255,255,255,0.85) !important;
}
.pr-carousel-dot.is-active {
    background: white !important;
    width: 22px !important;
}
@media (max-width: 767px) {
    #pr-carousel-track {
        padding-left: calc(50vw - 110px) !important;
        padding-right: calc(50vw - 110px) !important;
    }
    .pr-carousel-slide { width: 200px !important; }
    .pr-carousel-phone img { max-height: 430px !important; }
}
